Lëshimi i Redis 6.0 DBMS

Përgatitur Lëshimi i DBMS Redis 6.0, që i përket klasës së sistemeve NoSQL. Redis ofron funksione të ngjashme me Memcached për ruajtjen e të dhënave të çelësit/vlerës, të përmirësuara nga mbështetja për formatet e strukturuara të të dhënave si listat, hash-et dhe grupet, dhe aftësinë për të ekzekutuar skriptet e trajtuesit Lua nga ana e serverit. Kodi i projektit furnizuar nën licencën BSD. Module shtesë që ofrojnë aftësi të avancuara për përdoruesit e ndërmarrjeve si RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom që nga viti i kaluar furnizuar nën licencën e pronarit RSAL. Zhvillimi i versioneve të hapura të këtyre moduleve nën licencën AGPLv3 vazhdon nga projekti FORMA E MIRË.

Ndryshe nga Memcached, Redis siguron ruajtjen e vazhdueshme të të dhënave në disk dhe garanton sigurinë e bazës së të dhënave në rast të një mbylljeje emergjente. 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.

Celës përmirësimeshtuar në Redis 6.0:

  • Si parazgjedhje, propozohet protokolli i ri RESP3, por konfigurimi i lidhjes fillon në modalitetin RESP2 dhe klienti kalon në protokollin e ri vetëm nëse komanda e re HELLO përdoret kur negocion lidhjen. RESP3 ju lejon të ktheni drejtpërdrejt llojet komplekse të të dhënave pa pasur nevojë të konvertoni vargje gjenerike në anën e klientit dhe duke ndarë llojet e kthimit.
  • Mbështetja e listës së kontrollit të aksesit (ACL), duke ju lejuar të përcaktoni me saktësi se cilat operacione mund të kryhen nga klienti dhe cilat jo. ACL-të gjithashtu bëjnë të mundur mbrojtjen nga gabimet e mundshme gjatë zhvillimit, për shembull, një mbajtës që kryen vetëm operacionin BRPOPLPUSH mund të ndalohet të ekzekutojë operacione të tjera dhe nëse thirrja FLUSHALL e shtuar gjatë korrigjimit harrohet aksidentalisht në kodin e prodhimit, kjo do të të mos çojë në probleme. Zbatimi i një ACL nuk shkakton ndonjë shpenzim shtesë dhe praktikisht nuk ka asnjë ndikim në performancën. Modulet e ndërfaqes janë përgatitur gjithashtu për ACL, duke bërë të mundur krijimin e metodave tuaja të vërtetimit. Për të parë të gjitha shkeljet e regjistruara ACL, ofrohet komanda "ACL LOG". Për të gjeneruar çelësa të paparashikueshëm të sesionit, komanda "ACL GENPASS" është shtuar duke përdorur HMAC të bazuar në SHA256.
  • Mbështetje SSL / TLS për të enkriptuar kanalin e komunikimit ndërmjet klientit dhe serverit.
  • Mbështetje ruajtja e të dhënave në memorie në anën e klientit. Për të harmonizuar cache-në nga ana e klientit me gjendjen e bazës së të dhënave, janë të disponueshme dy mënyra: 1. Mbajtja e kujtesës në server të çelësave që klienti ka kërkuar më parë për ta informuar atë për humbjen e rëndësisë së hyrjes në cache-in e klientit. 2. Mekanizmi i “transmetimit”, në të cilin klienti abonohet në disa prefiksa çelësash dhe serveri e njofton nëse çelësat që bien nën këto prefiksa ndryshojnë. Avantazhi i modalitetit të "transmetimit" është se serveri nuk harxhon memorie shtesë për të ruajtur një hartë të vlerave të ruajtura në memorien e klientit, por disavantazhi është se numri i mesazheve të transmetuara rritet.
  • Ndërmjetësi i mesazheve Disque, i cili ju lejon të përdorni Redis për të përpunuar radhët e mesazheve, është hequr nga struktura bazë në modul i veçantë.
  • Shtuar Përfaqësuesi i grupit, një përfaqësues për një grup serverësh Redis, që lejon një klient të organizojë punën me disa serverë Redis sikur të ishin një shembull i vetëm. Proxy mund të drejtojë kërkesat në nyje me të dhënat e nevojshme, lidhjet multiplekse, të rikonfigurojë grupin nëse zbulohen dështime të nyjeve dhe të ekzekutojë kërkesa që përfshijnë nyje të shumta.
  • API për shkrimin e moduleve është përmirësuar ndjeshëm, duke e kthyer në thelb Redis në një kornizë që ju lejon të krijoni sisteme në formën e moduleve shtesë.
  • Është zbatuar një mënyrë replikimi në të cilën skedarët RDB fshihen menjëherë pasi të jenë përdorur.
  • Protokolli i replikimit PSYNC2 është përmirësuar, gjë që ka bërë të mundur kryerjen e risinkronizimit të pjesshëm më shpesh, duke rritur shanset për të identifikuar kompensimet e zakonshme për replikën dhe masterin.
  • Ngarkimi i skedarëve RDB është përshpejtuar. Në varësi të përmbajtjes së skedarit, përshpejtimi varion nga 20 në 30%. Ekzekutimi i komandës INFO është përshpejtuar ndjeshëm kur ka një numër të madh klientësh të lidhur.
  • Një komandë e re STRALGO është shtuar me zbatimin e algoritmeve komplekse të përpunimit të vargjeve. Aktualisht, disponohet vetëm një algoritëm LCS (nënsekuenca më e gjatë e zakonshme), e cila mund të jetë e dobishme kur krahasohen sekuencat e ARN-së dhe ADN-së.

Burimi: opennet.ru

Shto një koment