Redis 7.0 buraxılışı

NoSQL sistemləri sinfinə aid olan Redis 7.0 DBMS-nin buraxılışı işıq üzü görüb. Redis, siyahılar, hashlər və dəstlər kimi strukturlaşdırılmış məlumat formatlarının dəstəyi ilə təkmilləşdirilmiş əsas/dəyər məlumatlarının saxlanması funksiyalarını, həmçinin Lua-da server tərəfi skript işləyicilərini işə salmaq imkanı təqdim edir. Layihə kodu BSD lisenziyası əsasında verilir. RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom kimi korporativ istifadəçilər üçün qabaqcıl imkanlar təklif edən əlavə modullar 2019-cu ildən etibarən xüsusi RSAL lisenziyası ilə təchiz edilmişdir. Son zamanlar durğunluq yaşayan GoodFORM layihəsi AGPLv3 lisenziyası altında bu modulların açıq versiyalarının hazırlanmasını davam etdirməyə çalışıb.

Memcached kimi yaddaşdaxili saxlama sistemlərindən fərqli olaraq, Redis verilənlərin diskdə davamlı olaraq saxlanmasını təmin edir və qəza zamanı verilənlər bazasının toxunulmaz qalmasını təmin edir. 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.

Redis 7.0-da əsas dəyişikliklər:

  • Server tərəfi funksiyaları üçün əlavə dəstək. Lua dilində əvvəllər dəstəklənən skriptlərdən fərqli olaraq, funksiyalar proqrama bağlı deyil və serverin imkanlarını genişləndirən əlavə məntiqin həyata keçirilməsinə yönəlib. Funksiyalar tətbiq ilə deyil, verilənlər bazası ilə ayrılmaz şəkildə işlənir, o cümlədən təkrarlanaraq və davamlı yaddaşda saxlanılır.
  • ACL-nin ikinci nəşri təklif edilmişdir ki, bu da açarlar əsasında məlumatlara girişi idarə etməyə imkan verir və hər bir istifadəçiyə bir neçə seçici (icazələr dəsti) bağlamaq imkanı ilə əmrlərə daxil olmaq üçün müxtəlif qaydalar dəstlərini müəyyən etməyə imkan verir. Hər bir açar müəyyən bir səlahiyyətlə müəyyən edilə bilər, məsələn, siz yalnız müəyyən bir alt qrup düymələri oxumaq və ya yazmaqla girişi məhdudlaşdıra bilərsiniz.
  • Bir çoxluqda işləyən Nəşr et-Abunə ol mesaj paylama paradiqmasının bölünmüş (parçalanmış) tətbiqi təmin edilir, burada mesaj mesaj kanalının əlavə olunduğu xüsusi bir qovşağa göndərilir, bundan sonra bu mesaj daxil edilmiş qalan qovşaqlara yönləndirilir. qırıqda. Müştərilər həm əsas qovşağa, həm də bölmənin ikincil qovşaqlarına qoşulmaqla kanala abunə olmaqla mesajlar ala bilərlər. Nəzarət SUBSCRIBE, SUNSUBSCRIBE və SCUBLISH əmrlərindən istifadə etməklə həyata keçirilir.
  • Əksər kontekstlərdə alt əmrlərin işlənməsi üçün əlavə dəstək.
  • Yeni əmrlər əlavə edildi:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • YAYIN, ABUNƏ OLUN, GÜNƏŞƏ ABUNƏ OLUN, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • ƏMƏR SƏNƏDLƏRİ, ƏMƏR SİYAHISI.
    • GECİRME HİSTOQRAMI.
    • CLUSTER PARÇALARI, CLUSTER BAĞLANTILARI, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • MÜŞTƏRİYƏNDƏN ÇIXARILMAZ.
    • ACL DRYRUN.
  • Bir CONFIG SET/GET çağırışında birdən çox konfiqurasiyanı emal etmək imkanı təmin edilmişdir.
  • “-json”, “-2”, “-scan”, “-functions-rdb” seçimləri redis-cli yardım proqramına əlavə edilmişdir.
  • Varsayılan olaraq, müştərinin təhlükəsizliyə təsir edən parametrlərə və əmrlərə girişi qeyri-aktivdir (məsələn, DEBUG və MODULE əmrləri qeyri-aktivdir, PROTECTED_CONFIG bayrağı ilə konfiqurasiyaların dəyişdirilməsi qadağandır). Redis-cli artıq tarix faylına həssas məlumatları ehtiva edən əmrləri çıxarmır.
  • Optimallaşdırmaların böyük bir hissəsi performansı artırmaq və yaddaş istehlakını azaltmaq məqsədi ilə təqdim edilmişdir. Məsələn, klaster rejimini aktivləşdirərkən, kopyalama-yazma əməliyyatlarını yerinə yetirərkən, hash və zset düymələri ilə işləyərkən yaddaş istehlakı əhəmiyyətli dərəcədə azalıb. Məlumatların diskə yuyulması üçün təkmilləşdirilmiş məntiq (fsync çağırışı). Müştəriyə cavablar göndərilərkən şəbəkə paketlərinin və sistem zənglərinin sayı azalıb. Replikasiya səmərəliliyi artırıldı.
  • Lua skriptlərinin icrası mühitində CVE-2022-24735 zəifliyi aradan qaldırıldı ki, bu da öz Lua kodunuzu əvəz etməyə və daha yüksək imtiyazlara malik olan istifadəçi də daxil olmaqla, başqa istifadəçi kontekstində onun icrasına nail olmağa imkan verir.
  • Sabit zəiflik CVE-2022-24736, bu, redis-server prosesinin NULL göstərici istinadına görə qəzaya uğramasına imkan verir. Hücum xüsusi hazırlanmış Lua skriptlərinin yüklənməsi vasitəsilə həyata keçirilir.

Mənbə: opennet.ru

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