Redis 6.0 buraxılışı

Hazırlandı DBMS buraxılışı Redis 6.0, NoSQL sistemləri sinfinə aiddir. Redis əsas/dəyər məlumatlarının saxlanması üçün Memcached-ə bənzər funksiyaları təmin edir, siyahılar, hashlər və dəstlər kimi strukturlaşdırılmış məlumat formatlarına dəstək və server tərəfində Lua işləyicisi skriptlərini işə salmaq imkanı ilə təkmilləşir. Layihə kodu təchiz olunmuşdur BSD lisenziyası altında. Keçən ildən bəri RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom kimi müəssisə istifadəçiləri üçün qabaqcıl imkanlar təklif edən əlavə modullar təchiz edilmişdir mülkiyyət RSAL lisenziyası altında. AGPLv3 lisenziyası altında bu modulların açıq versiyalarının hazırlanması layihə tərəfindən davam etdirilir Yaxşı FORM.

Memcached-dən fərqli olaraq, Redis diskdə məlumatların davamlı saxlanmasını təmin edir və fövqəladə bağlanma zamanı verilənlər bazasının təhlükəsizliyinə zəmanət verir. Layihənin mənbə kodu BSD lisenziyası altında paylanır. Müştəri kitabxanaları Perl, Python, PHP, Java, Ruby və Tcl daxil olmaqla ən populyar dillər üçün mövcuddur. Redis, verilmiş əmrlər dəstinin icrasında ardıcıllıq və ardıcıllığı (digər sorğulardan gələn əmrlər müdaxilə edə bilməz) təmin edən və problem yarandıqda, geri qayıtmağa imkan verən bir addımda bir qrup əmrləri yerinə yetirməyə imkan verən əməliyyatları dəstəkləyir. dəyişikliklər. Bütün məlumatlar tam olaraq RAM-da saxlanılır.

Artırma/azaltma, standart siyahı və çoxluq əməliyyatları (birləşmə, kəsişmə), düymələrin adının dəyişdirilməsi, çoxlu seçimlər və çeşidləmə funksiyaları kimi əmrlər verilənlərin idarə edilməsi üçün təmin edilir. İki saxlama rejimi dəstəklənir: məlumatların diskə dövri sinxronizasiyası və diskdə dəyişiklik jurnalının saxlanması. İkinci halda, bütün dəyişikliklərin tam təhlükəsizliyi təmin edilir. Bloklanmayan rejimdə həyata keçirilən bir neçə serverə master-slave məlumatların təkrarlanması təşkil etmək mümkündür. Kanalın yaradıldığı, mesajların abunə yolu ilə müştərilərə paylandığı “nəşr et/abunə ol” mesajlaşma rejimi də mövcuddur.

Açar irəliləyişlərRedis 6.0-da əlavə edildi:

  • Varsayılan olaraq, yeni RESP3 protokolu təklif olunur, lakin əlaqənin qurulması RESP2 rejimində başlayır və müştəri yalnız əlaqə danışıqları zamanı yeni HELLO əmrindən istifadə edildikdə yeni protokola keçir. RESP3 müştəri tərəfində ümumi massivləri çevirmədən və qaytarma növlərini ayırmaqla mürəkkəb məlumat növlərini birbaşa qaytarmağa imkan verir.
  • Girişə nəzarət siyahısı dəstəyi (ACL), hansı əməliyyatların müştəri tərəfindən yerinə yetirilə biləcəyini və hansının edə bilməyəcəyini dəqiq müəyyən etməyə imkan verir. ACL-lər həmçinin inkişaf zamanı mümkün səhvlərdən qorunmağa imkan verir, məsələn, yalnız BRPOPLPUSH əməliyyatını yerinə yetirən işləyicinin digər əməliyyatları yerinə yetirməsi qadağan edilə bilər və sazlama zamanı əlavə edilmiş FLUSHALL çağırışı istehsal kodunda təsadüfən unudulsa, bu, problemlərə gətirib çıxarmaz. ACL-in həyata keçirilməsi heç bir əlavə xərc tələb etmir və performansa praktiki olaraq heç bir təsir göstərmir. ACL üçün interfeys modulları da hazırlanmışdır ki, bu da öz autentifikasiya üsullarınızı yaratmağa imkan verir. Bütün qeydə alınmış ACL pozuntularına baxmaq üçün “ACL LOG” əmri verilir. Gözlənilməz sessiya açarları yaratmaq üçün SHA256 əsaslı HMAC istifadə edərək "ACL GENPASS" əmri əlavə edilmişdir.
  • Dəstək SSL / TLS müştəri ilə server arasındakı əlaqə kanalını şifrələmək üçün.
  • Dəstək müştəri tərəfində məlumatların keşləşdirilməsi. Müştəri tərəfinin keşini verilənlər bazasının vəziyyəti ilə uyğunlaşdırmaq üçün iki rejim mövcuddur: 1. Müştərinin keş yaddaşındakı girişin aktuallığını itirməsi barədə məlumat vermək üçün əvvəllər tələb etdiyi açarları serverdə yadda saxlamaq. 2. Müştərinin müəyyən açar prefikslərinə abunə olduğu və bu prefikslərin altına düşən düymələr dəyişdikdə serverin ona xəbər verdiyi “yayım” mexanizmi. “Yayım” rejiminin üstünlüyü ondan ibarətdir ki, server müştəri tərəfində keşlənmiş dəyərlər xəritəsini saxlamaq üçün əlavə yaddaş sərf etmir, lakin dezavantaj ötürülən mesajların sayının artmasıdır.
  • Mesaj növbələrini emal etmək üçün Redis-dən istifadə etməyə imkan verən Disque mesaj brokeri əsas strukturdan silindi. ayrı modul.
  • Əlavə edilib Klaster Proksi, müştəriyə bir neçə Redis serveri ilə tək bir nümunə kimi işi təşkil etməyə imkan verən Redis serverləri çoxluğu üçün proxy. Proksi sorğuları lazımi verilənlərə, multipleks əlaqələrə malik qovşaqlara yönləndirə, node nasazlıqları aşkar edildikdə klasteri yenidən konfiqurasiya edə və çoxsaylı qovşaqları əhatə edən sorğuları yerinə yetirə bilər.
  • Modulların yazılması üçün API əhəmiyyətli dərəcədə təkmilləşdirildi, mahiyyətcə Redis-i əlavə modullar şəklində sistemlər yaratmağa imkan verən çərçivəyə çevirdi.
  • RDB fayllarının istifadə edildikdən sonra dərhal silindiyi replikasiya rejimi tətbiq edilmişdir.
  • PSYNC2 replikasiya protokolu təkmilləşdirilmişdir ki, bu da replika və master üçün ümumi olan ofsetləri müəyyən etmək şanslarını artırmaqla qismən yenidən sinxronizasiyanı daha tez-tez yerinə yetirməyə imkan vermişdir.
  • RDB fayllarının yüklənməsi sürətləndirildi. Faylın məzmunundan asılı olaraq, sürətlənmə 20-30% arasında dəyişir. Çox sayda əlaqəli müştərilər olduqda INFO əmrinin icrası əhəmiyyətli dərəcədə sürətləndirildi.
  • Mürəkkəb simli emal alqoritmlərinin tətbiqi ilə yeni STRALGO əmri əlavə edildi. Hal-hazırda yalnız bir LCS (ən uzun ümumi alt ardıcıllıq) alqoritmi mövcuddur ki, bu da RNT və DNT ardıcıllığını müqayisə edərkən faydalı ola bilər.

Mənbə: opennet.ru

Добавить комментарий