Ev Kişisel Finans NoSQL ile yüksek Hızlı Anahtar Erişimi

NoSQL ile yüksek Hızlı Anahtar Erişimi

İçindekiler:

Video: Common design patterns with Azure Cosmos DB | Azure Friday 2024

Video: Common design patterns with Azure Cosmos DB | Azure Friday 2024
Anonim

NoSQL'deki anahtar / değerli depoların tamamı hızla ilgilidir. Bu hızı en yüksek düzeye çıkarmak, verileri önbelleğe almak, birden fazla veri kopyasına sahip olmak veya en uygun depolama yapılarını kullanmak için çeşitli teknikler kullanabilirsiniz.

Verileri bellekte önbellekleme

Rasgele erişimli bellekte (RAM) depolandığında verilere kolayca erişildiğinden, veriyi RAM'e önbelleğe alan bir anahtar / değer çanağı seçerek, verilere erişimi ancak fiyata göre önemli ölçüde hızlandırabilirsiniz Daha yüksek sunucu maliyetleri.

Genellikle, bu ödün vermeye değiyor. Depolanan verilerinizin hangi yüzdesinin sıkça talep edildiğini kolayca hesaplayabilirsiniz. Biliyorsanız, genellikle yüzde beşi birkaç dakikada bir istemekte, o zaman veri boyutunuzun yüzde beşini alıp bu numarayı, veritabanı sunucularında yedek RAM alanı olarak ekleyin.

İşletim sisteminin, diğer uygulamaların ve veritabanı sunucusunun da bellek gereksinimlerinin olduğunu unutmayın.

Verileri köle olarak çoğaltma

Anahtar / değer depolarında, belirli bir anahtar kümedeki sunuculardan birinde saklanır. Bu işleme anahtar bölme adı verilir. Bu, eğer bu anahtar sürekli istendiğinde, bu düğüm toplu istekleri alacaktır demektir. Bu nedenle bu düğüm ortalama talep hızından daha yavaş olacak ve potansiyel olarak hizmet kalitesini kullanıcılarınıza etkileyecektir.

Bu durumu önlemek için, bazı anahtar / değer depolarında bağımlı olarak da adlandırılan salt okunur kopyaları eklemeyi destekler. Redis, Riak ve Aerospike iyi örneklerdir. Çoğaltma, birkaç sunucudaki anahtarın birden fazla kez depolanmasını sağlar; bu da tepki hızını artırır, ancak daha fazla donanım pahasına.

Bazı anahtar değer depoları, anahtar kopyalarının ana ile aynı değere sahip olmasını garantiler. Bu garantiye tamamen tutarlı denir. Anahtarı barındıran ana sunucuda bir güncelleme gerçekleşirse, tüm kopyaların güncelliğini garantiler.

Anahtar değerli mağazaların tümü bu durumu garanti etmez (örneğin Riak), bu nedenle, milisaniyesi güncel olmak önem taşıyorsa, kopyaları tamamen tutarlı olan bir veritabanı seçin (Aerospike gibi).

Anahtar / değer depolarındaki veri modelleme

Birçok anahtar / değerli depolar yalnızca değer yapıları için temel yapıları destekler ve uygulama programcısını verilerin yorumlanması işine bırakır. Basit veri türü desteği genellikle dizeler, tamsayılar, JSON ve ikili değerleri içerir.

Pek çok kullanım durumu için bu iyi çalışıyor, ancak bazen verilere biraz daha ayrıntılı bir erişim yararlı oluyor.Örneğin, Redis, aşağıdaki veri değeri türlerini desteklemektedir:

  • Dizgi

  • Liste

  • Set

  • Sıralama

  • Hash maps

  • Bit dizileri

  • Hyperlog günlükleri

değer aralıklarını eşleştirmek için sorgulanır - tarihe göre sıralanmış bir değer endeksini sorgulamak gibi, daktilo verilerinin bir alt kümesini aramada çok yararlıdır.

Verilerle çalışma

Redis, bir okuma-değiştirme-güncelleme (RMU) adımları kümesi oluşturmak zorunda kalmadan doğrudan anahtar değerlerini artırmak ve azaltmak için işlemleri içerir. Bunu, başka bir uygulamanın bir güncelleme sırasında değeri değiştirmesini sağlamak için tek bir işlemde yapabilirsiniz. Bu veri türüne özgü işlemler arasında, öğeleri listelere ekleme ve bunlara liste ve kümeler kaldırma da dahildir.

Redis ZRANGEBYLEX komutunu kullanarak bir uygulamanın kullanıcı arabiriminde otomatik tamamlama işlevleri de sağlayabilirsiniz. Bu komut kısmen bir dizgeyle eşleşen bir dizi anahtar alır. Yani, Redis üzerine kurulmuş bir uygulamanın arama çubuğuna "NoSQL for" yazarsanız, "NoSQL For Aumers" önerisini görürsünüz. "

Redis'in Değerlendirilmesi

Redis, hafif ama keyifli bir anahtar değer mağazası olma konusunda gurur duyuyor. Başlangıçta bir bellek içi anahtar değer mağazası olacak şekilde tasarlandı, ancak şimdi disk tabanlı veri depolama özelliklerine sahip.

Redis'i, AOF (yalnızca dosya ekleme) modunu etkinleştirerek ve her sorguda verileri zorlamak için Redis'e talimat vererek (zorla fsync fışkırma olarak bilinir) verileri korumak için kullanabilirsiniz. AOF elbette yazmaları yavaşlatır, ancak veriler için daha yüksek bir dayanıklılık düzeyi sağlar. Yine de bir saniye kadar komutları kaybetmenin mümkün olduğunu unutmayın.

Ayrıca Redis, kısa bir süre önce kümeleme için destek ekledi. Aslında, bu yazı hazırlanırken Redis'in kümeleme desteği beta test aşamasındadır. Neyse ki, Redis, doğrudan istemcinin yazmadığı özel anahtarlar ve köleler için ustalarla paylaşılmayan bir küme modeli kullanır; sadece usta öyle yapıyor. Paylaşımsız kümeleme sağlanması, Redis'in tüm kopyalara yazılmasına izin veren veritabanlarından daha güvenilir kümeleme uygulamasını kolaylaştırmalıdır.

Başka bir veritabanının önünde çok hızlı, bellek içi önbellek katmanı isterseniz - MongoDB veya Riak Redis ile yaygın olarak kullanılır - daha sonra Redis'i bir seçenek olarak değerlendirin. Kümelenme ve veri dayanıklılığı için destek geliştikçe, belki de Redis diğer arka uç veritabanlarından geride kalabilir.

NoSQL ile yüksek Hızlı Anahtar Erişimi

Editörün Seçimi

Ile Web Sunucusunda Drupal Yükleme Softaculous ile Bir Web Sunucusuna Drupal Yükleme

Ile Web Sunucusunda Drupal Yükleme Softaculous ile Bir Web Sunucusuna Drupal Yükleme

Birçok web barındırma şirketi, Fantastico veya Softaculous adlı programları kullanarak kolay Drupal kurulumu. Barındırma şirketiniz Softaculous'u kullanıyorsa, işte böyle çalışır. Drupal topluluğu, Softaculous veya Fantastico gibi üçüncü parti yazılımlarla Drupal'ın yüklenmesini önermez. Bunu yapmak, yükseltmeyi zorlaştırabilir ve veritabanlarınızdaki sorunlara potansiyel olarak neden olabilir ...

Drupal Bahçe Site Kullanıcılarını Yönetme - mankenler

Drupal Bahçe Site Kullanıcılarını Yönetme - mankenler

Drupal Gardens'daki People sayfası, kullanıcıları, düzenli bir Drupal kurulumunda olurdunuz. Kullanıcıları bulabilir, rolleri engelleyebilir ve engelini kaldırabilir, silebilir ve atayabilirsiniz. Kullanıcıları yönetmek için Kişiler bağlantısını tıklayın. Liste sekmesi varolan kullanıcıları bulmanıza yardımcı olur ve İzinler sekmesi rolleri oluşturmanıza izin verir ve ...

Drupal kurulumu: Yazılım Alma - mankenler

Drupal kurulumu: Yazılım Alma - mankenler

Web barındırıcınız Fantastico veya Softaculous kullanmıyorsa, ilk Drupal'ı yüklemek için adım Drupal'ın en son sürümünün bir kopyasını alıyor ve web sunucunuza taşıyor. Paketi indirmek Drupal yazılımının kopyasını almak özgür ve kolaydır. Şu adımları izleyin: Drupal'a göz atın. org ve tıklayın ...

Editörün Seçimi

OAuth Kodlarını Android Uygulamanızla Twitter Sunucusuyla Görüşecek - aumlalar

OAuth Kodlarını Android Uygulamanızla Twitter Sunucusuyla Görüşecek - aumlalar

Android uygulamanızın Twitter sunucularıyla iletişim kurması için kendi OAuth kodlarınıza ihtiyacınız var. Onları almak için, aşağıda listelenen basit adımları uygulayın ve kendi Twitter uygulamasını geliştirmeye gideceksiniz. Twitter, herhangi bir zamanda önceden bildirimde bulunmaksızın web sitesinin tasarımını değiştirebilir. Twitter'da oturum açın ...

Xcode Kaynak Düzenleyici ile Başlarken - mankenler

Xcode Kaynak Düzenleyici ile Başlarken - mankenler

Yazarken kullandığınız ana araç bir iPad uygulaması için kod, Proje gezgini içinde bir kaynak kodu dosyası seçtikten sonra Xcode Çalışma Alanı penceresinin sağ tarafındaki Düzenleyici alanında Standart düzenleyici bölmesi olarak görünen Xcode kaynak editörüdür. Ayrıca Asistan editörü gibi görünür ...

Editörün Seçimi

App'unuzu Geliştirmek İçin Android Animasyon Nasıl Kullanılır

App'unuzu Geliştirmek İçin Android Animasyon Nasıl Kullanılır

Android uygulamanızda biraz süslü animasyona ihtiyacımız var. Bu, umut veren bir hırsı gösteriyor! Android, uygulamanızın geliştirilmesinde kullanabileceğiniz iki tür animasyona sahiptir: Animasyonu görüntüle: Bu listede açıklandığı üzere ya arayı doldurarak veya kare kare animasyonla canlandırdığınız eski bir sistem: Arası doldurma: ...

IPad Uygulamalarınızda Çerçeveler Nasıl Kullanılır - AYDINLATMALAR

IPad Uygulamalarınızda Çerçeveler Nasıl Kullanılır - AYDINLATMALAR

Genel işlevsellik. IPad için iPhone OS, uygulamalarınıza teknolojileri, hizmetleri ve özellikleri dahil etmek için bir dizi çerçeve sunmaktadır. Örneğin, UIKit çerçevesi, uygulamanızda kullanabileceğiniz destek olayları, çizim desteği, pencereler, görünümler ve denetimler sağlar. Bir çerçeve, aşağıdakileri yapmak üzere tasarlanmıştır ...