Lëshimi i Redis 7.0 DBMS

Është publikuar publikimi i Redis 7.0 DBMS, i cili i përket klasës së sistemeve NoSQL. Redis ofron funksione për ruajtjen e të dhënave kryesore/vlera, të përmirësuara nga mbështetja për formatet e strukturuara të të dhënave si listat, hash-et dhe grupet, si dhe aftësinë për të ekzekutuar mbajtësit e skripteve nga ana e serverit në Lua. Kodi i projektit jepet nën licencën BSD. Modulet shtesë që ofrojnë aftësi të avancuara për përdoruesit e korporatave, si RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, janë furnizuar me një licencë RSAL të pronarit që nga viti 2019. Projekti GoodFORM, i cili kohët e fundit ka stagnuar, u përpoq të vazhdonte zhvillimin e versioneve të hapura të këtyre moduleve nën licencën AGPLv3.

Ndryshe nga sistemet e ruajtjes në memorie si Memcached, Redis siguron që të dhënat të ruhen vazhdimisht në disk dhe siguron që baza e të dhënave të mbetet e paprekur në rast përplasjeje. Kodi burimor i projektit shpërndahet nën licencën BSD. Bibliotekat e klientëve janë të disponueshme për gjuhët më të njohura, duke përfshirë Perl, Python, PHP, Java, Ruby dhe Tcl. Redis mbështet transaksionet, të cilat ju lejojnë të ekzekutoni një grup komandash në një hap, duke siguruar qëndrueshmëri dhe qëndrueshmëri (komandat nga kërkesat e tjera nuk mund të ndërhyjnë) në ekzekutimin e një grupi të caktuar komandash, dhe në rast problemesh, duke ju lejuar të riktheheni ndryshimet. Të gjitha të dhënat ruhen plotësisht në RAM.

Për menaxhimin e të dhënave sigurohen komanda të tilla si inkrement/zvogëlimi, lista standarde dhe operacionet e grupeve (bashkimi, kryqëzimi), riemërtimi i çelësave, përzgjedhjet e shumëfishta dhe funksionet e renditjes. Mbështeten dy mënyra ruajtjeje: sinkronizimi periodik i të dhënave në disk dhe mirëmbajtja e një regjistri ndryshimesh në disk. Në rastin e dytë, garantohet siguria e plotë e të gjitha ndryshimeve. Është e mundur të organizohet riprodhimi i të dhënave master-slave në disa serverë, të kryer në një modalitet jo-bllokues. Ekziston gjithashtu një modalitet i mesazheve "publish/subscribe", në të cilin krijohet një kanal, mesazhet nga i cili u shpërndahen klientëve me abonim.

Ndryshimet kryesore në Redis 7.0:

  • Mbështetje e shtuar për funksionet nga ana e serverit. Ndryshe nga skriptet e mbështetur më parë në gjuhën Lua, funksionet nuk janë të lidhura me aplikacionin dhe kanë për qëllim zbatimin e logjikës shtesë që zgjeron aftësitë e serverit. Funksionet përpunohen në mënyrë të pandashme me të dhënat dhe në lidhje me bazën e të dhënave, dhe jo me aplikacionin, duke përfshirë riprodhimin dhe ruajtjen në ruajtje të vazhdueshme.
  • Është propozuar një botim i dytë i ACL, i cili ju lejon të kontrolloni aksesin në të dhëna bazuar në çelësat dhe ju lejon të përcaktoni grupe të ndryshme rregullash për aksesimin e komandave me aftësinë për të lidhur disa përzgjedhës (grupe lejesh) për secilin përdorues. Çdo çelës mund të identifikohet me një autoritet specifik, për shembull, ju mund të kufizoni aksesin vetëm në leximin ose shkrimin e një nëngrupi të caktuar çelësash.
  • Ofrohet një zbatim i ndarë (i ndarë) i paradigmës së shpërndarjes së mesazheve Publish-Subscribe që funksionon në një grup, në të cilin një mesazh dërgohet në një nyje specifike të cilës i është bashkangjitur një kanal mesazhi, pas së cilës ky mesazh ridrejtohet në nyjet e mbetura të përfshira. në copëza. Klientët mund të marrin mesazhe duke u abonuar në një kanal, si duke u lidhur me nyjen kryesore ashtu edhe me nyjet dytësore të seksionit. Kontrolli kryhet duke përdorur komandat SSUBSCRIBE, SUNSUBSCRIBE dhe SPUBLISH.
  • Mbështetje e shtuar për përpunimin e nënkomandave në shumicën e konteksteve.
  • U shtuan komanda të reja:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • PUBLIKO, SUBSCRIBE, SUNABSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • KOHA E skaduar, KOHA PAK.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • DOKUMENTET E KOMANDAVE, LISTA E KOMANDAVE.
    • HISTOGRAM I LATENCËS.
    • SHARDS TË GRUPIT, LIDHJET TË GRUPIT, DELSLOTSRANGE GRUP, SHTËSIMET E GRUPIT.
    • KLIENTI MOS DËRBIM.
    • ACL DRYRUN.
  • Është dhënë mundësia për të përpunuar konfigurime të shumta në të njëjtën kohë në një telefonatë CONFIG SET/GET.
  • Opsionet "-json", "-2", "-scan", "-functions-rdb" janë shtuar në mjetin redis-cli.
  • Si parazgjedhje, aksesi i klientit në cilësimet dhe komandat që ndikojnë në siguri është i çaktivizuar (për shembull, komandat DEBUG dhe MODULE janë çaktivizuar, ndryshimi i konfigurimeve me flamurin PROTECTED_CONFIG është i ndaluar). redis-cli nuk nxjerr më komanda që përmbajnë të dhëna të ndjeshme në një skedar historie.
  • Një pjesë e madhe e optimizimeve janë prezantuar që synojnë rritjen e performancës dhe reduktimin e konsumit të kujtesës. Për shembull, konsumi i kujtesës është reduktuar ndjeshëm kur aktivizoni modalitetin e grupit, kur kryeni operacione kopjimi në shkrim dhe kur punoni me çelësat hash dhe zset. Logjika e përmirësuar për shpëlarjen e të dhënave në disk (thirrje fsync). Numri i paketave të rrjetit dhe thirrjeve të sistemit gjatë dërgimit të përgjigjeve te klienti është zvogëluar. Efikasiteti i replikimit është përmirësuar.
  • Është rregulluar dobësia CVE-2022-24735 në mjedisin për ekzekutimin e skripteve Lua, e cila ju lejon të zëvendësoni kodin tuaj Lua dhe të arrini ekzekutimin e tij në kontekstin e një përdoruesi tjetër, duke përfshirë një me privilegje më të larta.
  • Rregulloi dobësinë CVE-2022-24736, e cila lejon që procesi i serverit të ridiskutohet për shkak të mosreferencimit të treguesit NULL. Sulmi kryhet përmes ngarkimit të skripteve Lua të krijuara posaçërisht.

Burimi: opennet.ru

Shto një koment