Redis 6.0 izdanje

Pripremljeno DBMS izdanje Redis 6.0, koji pripada klasi NoSQL sistema. Redis pruža funkcije slične Memcachedu za pohranjivanje podataka ključ/vrijednost, poboljšane podrškom za strukturirane formate podataka kao što su liste, hashovi i skupovi, kao i mogućnost pokretanja Lua skripti za rukovanje na strani servera. Šifra projekta isporučuje se pod BSD licencom. Dodatni moduli koji nude napredne mogućnosti za poslovne korisnike kao što su RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom od prošle godine isporučeno pod vlasničkom licencom RSAL-a. Projektom je nastavljen razvoj otvorenih verzija ovih modula pod licencom AGPLv3 GoodFORM.

Za razliku od Memcached-a, Redis obezbeđuje trajno skladištenje podataka na disku i garantuje sigurnost baze podataka u slučaju isključivanja u nuždi. Izvorni kod projekta se distribuira pod BSD licencom. Klijentske biblioteke su dostupne za najpopularnije jezike, uključujući Perl, Python, PHP, Java, Ruby i Tcl. Redis podržava transakcije, koje vam omogućavaju da izvršite grupu naredbi u jednom koraku, osiguravajući konzistentnost i konzistentnost (naredbe iz drugih zahtjeva ne mogu ometati) u izvršavanju datog skupa naredbi, a u slučaju problema, omogućavajući vam da se vratite nazad. promjene. Svi podaci su u potpunosti keširani u RAM-u.

Komande kao što su povećanje/smanjenje, standardne liste i operacije skupa (ujedinjenje, presek), preimenovanje tastera, višestruki izbori i funkcije sortiranja su obezbeđene za upravljanje podacima. Podržana su dva načina skladištenja: periodična sinhronizacija podataka na disk i održavanje evidencije promjena na disku. U drugom slučaju, potpuna sigurnost svih promjena je zagarantirana. Moguće je organizovati master-slave replikaciju podataka na nekoliko servera, koja se vrši u neblokirajućem režimu. Dostupan je i način razmjene poruka “objavi/pretplati se” u kojem se kreira kanal, poruke iz kojeg se distribuiraju klijentima putem pretplate.

Ključ poboljšanjadodano u Redis 6.0:

  • Prema zadanim postavkama, predložen je novi RESP3 protokol, ali postavljanje veze počinje u RESP2 načinu rada i klijent se prebacuje na novi protokol samo ako se nova HELLO naredba koristi prilikom pregovaranja o vezi. RESP3 vam omogućava da direktno vratite složene tipove podataka bez potrebe za konvertovanjem generičkih nizova na strani klijenta i odvajanjem tipova vraćanja.
  • Podrška za listu kontrole pristupa (ACL), omogućavajući vam da precizno odredite koje operacije može izvršiti klijent, a koje ne. ACL-ovi također omogućavaju zaštitu od mogućih grešaka tokom razvoja, na primjer, rukovaocu koji izvodi samo operaciju BRPOPLPUSH može biti zabranjeno izvršavanje drugih operacija, a ako se FLUSHALL poziv dodan tokom otklanjanja grešaka slučajno zaboravi u proizvodnom kodu, to će ne dovodi do problema. Implementacija ACL-a ne izaziva nikakve dodatne troškove i praktično nema utjecaja na performanse. Moduli sučelja su također pripremljeni za ACL, što omogućava kreiranje vlastitih metoda provjere autentičnosti. Za pregled svih zabilježenih kršenja ACL-a, obezbjeđena je komanda “ACL LOG”. Za generiranje nepredvidivih ključeva sesije, dodana je naredba "ACL GENPASS" koristeći HMAC baziran na SHA256.
  • podrška SSL / TLS za šifriranje kanala komunikacije između klijenta i servera.
  • podrška keširanje podataka na strani klijenta. Za usaglašavanje keša na strani klijenta sa stanjem baze podataka, dostupna su dva načina: 1. Pamćenje na serveru ključeva koje je klijent prethodno zatražio kako bi ga obavijestio o gubitku relevantnosti unosa u kešu klijenta. 2. Mehanizam “emitovanja”, u kojem se klijent pretplaćuje na određene prefikse ključa, a server ga obavještava ako se ključevi koji potpadaju pod ove prefikse promijene. Prednost „broadcasting“ načina rada je u tome što server ne troši dodatnu memoriju na pohranjivanje mape vrijednosti keširane na strani klijenta, ali je nedostatak što se povećava broj poslanih poruka.
  • Disque broker poruka, koji vam omogućava da koristite Redis za obradu redova poruka, uklonjen je iz osnovne strukture u odvojeni modul.
  • Dodano Cluster Proxy, proxy za klaster Redis servera, omogućavajući klijentu da organizuje rad sa nekoliko Redis servera kao da su jedna instanca. Proxy može usmjeriti zahtjeve na čvorove s potrebnim podacima, multipleksne veze, rekonfigurirati klaster ako se otkriju kvarovi čvora i izvršiti zahtjeve koji obuhvataju više čvorova.
  • API za pisanje modula je značajno poboljšan, u suštini pretvarajući Redis u okvir koji vam omogućava da kreirate sisteme u obliku dodatnih modula.
  • Implementiran je način replikacije u kojem se RDB datoteke odmah brišu nakon što se koriste.
  • Protokol PSYNC2 replikacije je poboljšan, što je omogućilo češće izvođenje djelomične resinhronizacije, povećanjem šansi za identifikaciju pomaka zajedničkih za repliku i master.
  • Učitavanje RDB datoteka je ubrzano. U zavisnosti od sadržaja datoteke, ubrzanje se kreće od 20 do 30%. Izvršenje naredbe INFO je značajno ubrzano kada postoji veliki broj povezanih klijenata.
  • Dodata je nova STRALGO komanda sa implementacijom složenih algoritama za obradu stringova. Trenutno je dostupan samo jedan LCS (najduža zajednička podsekvenca) algoritam, koji može biti koristan kada se porede RNA i DNK sekvence.

izvor: opennet.ru

Dodajte komentar