NoSQL veritabanı yönetim sistemi Redis 8.2 sürümü yayınlandı. Redis, verileri anahtar/değer biçiminde depolama işlevleri sunar; listeler, karmalar ve kümeler gibi yapılandırılmış veri biçimleri desteği ve sunucu tarafında Lua betik işleyicilerini çalıştırma olanağıyla genişletilmiştir. Proje kodu C dilinde yazılmış olup AGPLv3 lisansı altında dağıtılmaktadır.
Redis DBMS, bir grup komutu tek adımda yürütmenize olanak tanıyan işlemleri destekler, belirli bir komut kümesinin yürütülmesinde tutarlılık ve tutarlılık (diğer isteklerden gelen komutlar müdahale edemez) garanti eder ve sorun olması durumunda, işlemleri tamamlamanıza olanak tanır. geri değişiklikler. Tüm veriler tamamen RAM'de önbelleğe alınır. İstemci kitaplıkları Perl, Python, PHP, Java, Ruby ve Tcl dahil olmak üzere en popüler diller için mevcuttur.
Veri yönetimi komutları arasında artırma/azaltma, standart liste ve küme işlemleri (birleşim, kesişim), anahtar yeniden adlandırma, çoklu seçim ve sıralama işlevleri bulunur. İki depolama modu desteklenir: diske periyodik veri senkronizasyonu ve diskte değişiklik günlüğü tutma. İkincisi, tüm değişikliklerin eksiksiz olarak korunmasını garanti eder. Birden fazla örnek arasında ana-bağımlı veri çoğaltma da mümkündür. sunucularEngellemesiz modda gerçekleştirilir. Ayrıca, mesajların abonelik yoluyla istemcilere dağıtıldığı bir kanal oluşturan bir yayınla/abone ol mesajlaşma modu da mevcuttur.
Redis 8.2'daki önemli değişiklikler:
- 70'ten fazla komut, Redis 8.0'dan daha hızlı çalışacak şekilde optimize edildi. Örneğin, BITCOUNT komutu artık %35, LINSERT, LREM ve LPOS liste işlemleri ise %25 daha hızlı. Optimize edilen komutların 17'si artık en az %5, 52'si ise en az %2 daha hızlı.

- Eş zamanlı işlemleri ve çoklu iş parçacıklı G/Ç'yi yönetmek için kodda optimizasyonlar yapıldı; bu sayede, %20 yazma isteği ve %80 okuma isteği yük dağılımıyla 8 G/Ç iş parçacığıyla yapılan testlerde saniyede işlenen işlem sayısında %49'luk bir artış sağlandı. sunucu Saniyede 1 milyon işlem gerçekleştirme kilometre taşını aşmayı başardı.

- Verileri anahtar/değer biçiminde depolama yöntemi temelden değiştirildi; depolama için artık birleşik bir kvobj yapısı kullanılıyor. Bu yapı, anahtar adının, kısa değerin ve kullanım ömrünün ayrılmış bellekteki tek bir blokta paketlenmesine ve karma tablolarda anahtarlara, verilere ve TTL'ye ayrı referanslar yerine bu yapıya tek bir referans kullanılmasına olanak tanıyor. Kısa dize değerleri depolanırken, yeni depolama yöntemi bellek tüketimini %25-37 oranında azalttı.

- JSON formatında veri depolama optimizasyonu yapılarak tam sayılar ve kayan noktalı sayıların depolanmasında bellek tüketiminin %25-67 oranında azaltılması sağlandı.
- İleti akışını işlemek ve depolamak için kullanılan Akışlar mekanizması, birden fazla alıcının (tüketici grubunun) bağlı olduğu akışlarla çalışmayı basitleştiren yeni XACKDEL ve XDELEX komutlarıyla desteklenmiştir. Bu komutlar, bir iletinin yalnızca tüm işleyiciler tarafından alındığı onaylandıktan sonra silinmesi sorununu çözmektedir.
- Bitsel işlemleri gerçekleştirmek için tasarlanan BITOP komutuna DIFF, DIFF1, ANDOR ve ONE adlı yeni mantıksal operatörler eklendi.
- Vektör sıkıştırmayı destekleyen yeni vektör indeks türü SVS-VAMANA eklendi.
- Yeni metrikler eklendi: temel veri türleri için yuva başına yük ve anahtar boyutu dağılımı.
Kaynak: opennet.ru



