lansare SGBD , care face parte din clasa sistemelor NoSQL. Redis oferă funcții similare cu Memcached pentru stocarea datelor în format cheie/valoare, extins cu suport pentru formate de date structurate, cum ar fi liste, hash-uri și seturi, precum și posibilitatea de a rula scripturi de procesare pe server în limbajul Lua. Codul proiectului sub licența BSD. Module suplimentare, care oferă funcții extinse pentru utilizatorii din mediul corporativ, cum ar fi RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, cu un an în urmă sub licența proprietară RSAL. Dezvoltarea variantelor deschise ale acestor module sub licența AGPLv3 a fost continuată de proiect .
Spre deosebire de Memcached, Redis asigură stocarea persistentă a datelor pe disc și garantează integritatea Bazei de Date în cazul unei opriri necontrolate. Codurile sursă ale proiectului sunt distribuite sub licența BSD. Bibliotecile client sunt disponibile pentru majoritatea limbajelor populare, inclusiv Perl, Python, PHP, Java, Ruby și Tcl. Redis suportă tranzacții, permițând executarea unui grup de comenzi într-o singură etapă, garantând consistența și sequentialitatea (comenzile de la alte cereri nu pot interveni) execuției unui set dat de comenzi, iar în cazul unor probleme permite resetarea modificărilor. Toate datele sunt complet stocate în memorie RAM.
Pentru gestionarea datelor sunt oferite comenzi precum incrementare/decrementare, operații standard asupra listelor și seturilor (uniune, intersecție), redenumirea cheilor, selecții multiple și funcții de sortare. Sunt suportate două moduri de stocare: sincronizarea periodică a datelor pe disc și păstrarea unui jurnal al modificărilor pe disc. În al doilea caz, se garantează completă păstrare a tuturor modificărilor. Este posibilă organizarea replicării datelor master-slave pe mai multe servere, realizată într-un mod non-blocant. De asemenea, este disponibil modul de schimb de mesaje „publicare/abonare”, în care se creează un canal, mesajele din care sunt distribuite clienților prin abonare.
Principalele , adăugate în Redis 6.0:
- De default, un nou protocol RESP3 este propus, dar stabilirea conexiunii începe în modul RESP2, iar clientul trece la noul protocol numai dacă, în timpul negocierii conexiunii, a fost folosită noua comandă HELLO. RESP3 permite returnarea directă a tipurilor de date complexe fără necesitatea conversiei array-urilor generale pe partea clientului și separând tipurile returnate.
- Suport pentru liste de control al accesului (), care permit definirea precisă a operațiunilor pe care clientul le poate efectua și a celor pe care nu le poate. ACL oferă de asemenea posibilitatea de a te proteja împotriva posibilelor erori în timpul dezvoltării; de exemplu, unui handler care execută doar operația BRPOPLPUSH i se poate interzice să efectueze alte operații, iar în cazul în care în codul de producție este uitat accidental apelul FLUSHALL adăugat în timpul depanării, aceasta nu va conduce la probleme. Implementarea ACL nu prezintă costuri suplimentare și afectează practic în mod minim performanța. De asemenea, pentru ACL sunt pregătite module de interfață care permit crearea propriilor metode de autentificare. Comanda „ACL LOG” este disponibilă pentru vizualizarea tuturor încălcărilor înregistrate ale ACL. Pentru generarea cheilor de sesiune imprevizibile, a fost adăugată comanda „ACL GENPASS”, care folosește HMAC bazat pe SHA256.
- Asistență pentru criptarea canalului de comunicare între client și server.
- caching de date pe partea clientului. Pentru sincronizarea cache-ului pe partea clientului cu starea bazei de date, sunt disponibile două moduri: 1. Memorarea pe server a cheilor pe care clientul le-a solicitat anterior, pentru a-l informa despre pierderea relevanței unei înregistrări în cache-ul clientului. 2. Mecanismul de „broadcasting”, în care clientul se abonează la anumite prefixe de chei, iar serverul îl notifică în cazul unei modificări a cheilor care se încadrează în aceste prefixe. Un avantaj al modului de „broadcasting” este că serverul nu consumă memorie suplimentară pentru a stoca o hartă a valorilor cache-uite pe partea clientului, iar dezavantajul constă în creșterea numărului de mesaje transmise.
- Brokerul de mesaje Disque, care permite utilizarea Redis pentru procesarea coadelor de mesaje, a fost scos din compunerea de bază în .
- Adăugat , un proxy pentru clusterul de servere Redis, care permite organizarea lucrului clientului cu mai multe servere Redis ca și cum ar fi un singur exemplu. Proxy-ul poate ruteze cererile către nodurile cu datele necesare, multiplexer conexiunile, reconfigura clusterul în cazul depistat al defecțiunilor nodurilor, executa cereri ce acoperă mai multe noduri.
- API-ul pentru scrierea modulelor a fost semnificativ îmbunătățit, practic transformând Redis într-un cadru care permite crearea de sisteme sub forma de module-extensii.
- A fost implementat un mod de replicare, în care fișierele RDB sunt imediat șterse după ce au fost utilizate.
- Protocolul de replicare PSYNC2 a fost îmbunătățit, ceea ce a permis efectuarea mai frecventă a resincronizării parțiale, sporind șansele de a depista offset-ul comun pentru replici și master.
- Încărcarea fișierelor RDB a fost accelerată. În funcție de specificațiile fișierului, accelerarea variază între 20% și 30%. Execuția comenzii INFO a fost semnificativ accelerată în prezența unui număr mare de clienți conectați.
- A fost adăugată o nouă comandă STRALGO cu implementarea unor algoritmi complexi de procesare a șirurilor. În prezent, este disponibil doar un algoritm LCS (longest common subsequence), care poate fi util pentru compararea secvențelor de ARN și ADN.
Sursa: opennet.ro
