Lëshimi i DBMS Redis 7.0

Është publikuar versioni i DBMS Redis 7.0, që i përket klasës së sistemeve NoSQL. Redis ofron funksione për ruajtjen e të dhënave në formatin çelësi/vlerë, duke u zgjeruar me mbështetje për formate të strukturuara të të dhënave, si lista, hash-e dhe grupe, si dhe mundësinë e ekzekutimit të skripteve-mbështetëse në server me gjuhën Lua. Kodi i projektit ofrohet nën licencën BSD. Modulet shtesë, që ofrojnë funksionalitete të zgjeruara për përdoruesit korporatë, si RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, që nga viti 2019 ofrohen nën licencën e pronarit RSAL. Zhvillimi i varianteve të hapura të këtyre moduleve nën licencën AGPLv3 përpiqet të vazhdojë projekti GoodFORM, i cili për momentin ndodhet në stagnim.

Ndryshe nga sistemet e ruajtjes në memorie, të tilla si Memcached, Redis siguron ruajtjen e përhershme të të dhënave në disk dhe garanton sigurinë e DB-së në rast të mbylljes së papritur. Kodet burimore të projektit shpërndahen në kuadër të licencës BSD. Bibliotekat klientore janë të disponueshme për shumicën e gjuhëve të njohura, përfshirë Perl, Python, PHP, Java, Ruby dhe Tcl. Redis mbështet transaksionet, që lejojnë ekzekutimin e një grupi komandash në një hap, duke garantuar qëndrueshmërinë dhe koherencën (komandat nga kërkesa të tjera nuk mund të ndërhyjnë) e ekzekutimit të këtij grumbulli komandash, dhe në rast problemesh lejojnë rikthimin e ndryshimeve. Të gjitha të dhënat ruhen plotësisht në memorie.

Për menaxhimin e të dhënave, ofrohen komanda të tilla si inkrement/defrement, operacione standard mbi lista dhe grupe (bashkimi, përbashkimi), rinaming i çelësave, marrje të shumta dhe funksione renditjeje. Mbështeten dy mënyra ruajtjeje: sinkronizimi i rregullt i të dhënave në disk dhe mbajtja në disk e logut të ndryshimeve. Në rastin e dytë, garantohet ruajtja e plotë e të gjitha ndryshimeve. Është e mundur organizimi i replikimit të të dhënave master-slave në disa serverësh, realizuar në mënyrë jo bllokuese. Është gjithashtu në dispozicion një regjimi i komunikimit "publikim/abone", ku krijohet një kanal, mesazhet nga i cili shpërndahen klientëve në bazë të abonimeve.

Ndryshimet kryesore në Redis 7.0:

  • Shtuar mbështetje për funksione që kryhen anash сервера. Ndryshe nga skriptet e mbështetur më parë në gjuhën Lua, funksionet nuk janë të lidhura me aplikacionin dhe synojnë realizimin e logjikës shtesë, që zgjeron mundësitë e serverit. Funksionet trajtohen në përputhje të ngushtë me të dhënat dhe në lidhje me bazën e të dhënave, e jo me aplikacionin, duke përfshirë replikimet dhe ruajtjen në magazinën e qëndrueshme.
  • Është propozuar një redaktim i dytë i ACL, që lejon menaxhimin e aksesit në të dhëna sipas çelësave dhe lejon përcaktimin e grupeve të ndryshme të rregullave të aksesit në komandat me mundësinë e lidhjes së disa selektorëve (grupeve të kompetencave) për çdo përdorues. Çdo çelës mund të identifikohet me kompetenca të caktuara, për shembull, mund të kufizohet aksesin në mënyrë vetëm për lexim ose shkruan në një nëngrup të caktuar çelësash.
  • Është ofruar një realizim funksional në klaster të modelit të shpërndarjes së mesazheve sipas abonimit (Publish-Subscribe), ku mesazhi dërgohet në një nyjë të caktuar, e cila ka një kanal mesazhesh të lidhur, pas së cilës ky mesazh ridërgohet në nyjet e tjera që bëjnë pjesë në seksionin (shard). Klientët mund të marrin mesazhe duke u abonuar në kanalin, si duke u lidhur me nyjën kryesore ashtu edhe me nyjat sekondare të seksionit. Menaxhimi kryhet me ndihmën e komandave SSUBSCRIBE, SUNSUBSCRIBE dhe SPUBLISH.
  • Është shtuar mbështetje për trajtimin e nëndërdheve në shumicën e konteksteve.
  • Komandat e reja janë shtuar:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • COMMAND DOCS, COMMAND LIST.
    • LATENCY HISTOGRAM.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • CLIENT NO-EVICT.
    • ACL DRYRUN.
  • Është ofruar mundësia e trajtimit të menjëhershëm të disa konfigurimeve në një kërkesë CONFIG SET/GET.
  • Janë shtuar opsionet «—json», «-2», «—scan», «—functions-rdb» në utilitarin redis-cli.
  • Për përfundim, klientëve u është ndaluar qasja në cilësimet dhe komandat që ndikojnë në siguri (për shembull, komandat DEBUG dhe MODULE janë çaktivizuar, ndalohet ndryshimi i konfigurimeve me flagun PROTECTED_CONFIG). Në redis-cli, është ndaluar shkarkimi në skedarin me historinë e komandave që përmbajnë të dhëna të ndjeshme.
  • Shtuar një sasi të madhe optimizimesh, të orientuara drejt përmirësimit të efikasitetit dhe reduktimit të konsumit të memories. Për shembull, është ulur ndjeshëm konsumimi i memories kur aktivizohet moda e klasterit, gjatë kryerjes së operacioneve copy-on-write dhe gjatë punës me hash dhe çelësa zset. Është përmirësuar logjika e rikthimit të të dhënave në disk (thirrjes fsync). Numri i paketave rrjet dhe thirrjeve të sistemit është reduktuar gjatë dërgimit të përgjigjeve për klientët. Efikasiteti i replikimit është rritur.
  • Eliminuar një vulnerabilitet CVE-2022-24735 në mjedisin e ekzekutimit të skripteve Lua, i cili lejon zëvendësimin e kodit tuaj Lua dhe arritjen e ekzekutimit të tij në kontekstin e një përdoruesi tjetër, përfshirë ata me privilegje më të larta.
  • Eliminuar një vulnerabilitet CVE-2022-24736, i cili lejon që të shkaktohet mbyllje e papritur e procesit redis-server për shkak të dereferencës së një treguesi null. Sulmi kryhet përmes ngarkimit të skripteve Lua të strukturuara posaçërisht.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster