Izdanje Redis 6.0 DBMS

Pripremljeno DBMS izdanje Redis 6.0, koji pripada klasi NoSQL sustava. Redis pruža funkcije slične Memcachedu za pohranjivanje podataka ključ/vrijednost, poboljšane podrškom za formate strukturiranih podataka kao što su popisi, hashovi i skupovi, te mogućnošću pokretanja skripti rukovatelja Lua na strani poslužitelja. Š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čena pod vlasničkom RSAL licencom. Projektom se nastavlja razvoj otvorenih verzija ovih modula pod licencom AGPLv3 GoodFORM.

Za razliku od Memcacheda, Redis osigurava trajnu pohranu podataka na disk i jamči sigurnost baze podataka u slučaju hitnog gašenja. Izvorni kod projekta distribuira se pod BSD licencom. Biblioteke klijenata dostupne su za većinu popularnih jezika, uključujući Perl, Python, PHP, Java, Ruby i Tcl. Redis podržava transakcije, koje vam omogućuju izvršavanje grupe naredbi u jednom koraku, osiguravajući dosljednost i dosljednost (naredbe iz drugih zahtjeva ne mogu ometati) u izvršavanju zadanog skupa naredbi, a u slučaju problema, omogućujući vam vraćanje promjene. Svi podaci su u potpunosti predmemorirani u RAM-u.

Naredbe kao što su inkrement/dekrement, standardne operacije popisa i skupa (unija, presjek), preimenovanje tipki, višestruki odabiri i funkcije sortiranja dostupne su za upravljanje podacima. Podržana su dva načina pohrane: periodična sinkronizacija podataka na disk i održavanje dnevnika promjena na disku. U drugom slučaju zajamčena je potpuna sigurnost svih promjena. Moguće je organizirati master-slave replikaciju podataka na nekoliko poslužitelja, koja se provodi u načinu rada bez blokiranja. Dostupan je i način slanja poruka "objavi/pretplati se", u kojem se stvara kanal s kojeg se poruke 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 naredba HELLO koristi prilikom dogovaranja veze. RESP3 vam omogućuje izravno vraćanje složenih tipova podataka bez potrebe za pretvaranjem generičkih nizova na strani klijenta i odvajanjem povratnih tipova.
  • Podrška popisu kontrole pristupa (ACL), omogućujući vam da točno odredite koje operacije klijent može izvesti, a koje ne. ACL-ovi također omogućuju zaštitu od mogućih pogrešaka tijekom razvoja, na primjer, rukovatelju koji izvodi samo operaciju BRPOPLPUSH može biti zabranjeno izvršavanje drugih operacija, a ako je poziv FLUSHALL dodan tijekom otklanjanja pogrešaka slučajno zaboravljen u proizvodnom kodu, to će ne dovodi do problema. Implementacija ACL-a ne stvara nikakve dodatne troškove i praktički nema utjecaja na performanse. Moduli sučelja također su pripremljeni za ACL, što omogućuje kreiranje vlastitih metoda provjere autentičnosti. Za pregled svih zabilježenih kršenja ACL-a, dostupna je naredba “ACL LOG”. Za generiranje nepredvidivih ključeva sesije dodana je naredba "ACL GENPASS" koristeći HMAC temeljen na SHA256.
  • podrška SSL / TLS za šifriranje komunikacijskog kanala između klijenta i poslužitelja.
  • podrška keširanje podataka na strani klijenta. Za usklađivanje predmemorije na strani klijenta sa stanjem baze podataka, dostupna su dva načina: 1. Pamćenje na poslužitelju ključeva koje je klijent prethodno zatražio kako bi ga se obavijestilo o gubitku važnosti unosa u predmemoriju klijenta. 2. Mehanizam "emitiranja", u kojem se klijent pretplaćuje na određene prefikse ključeva, a poslužitelj ga obavještava ako se ključevi koji potpadaju pod te prefikse promijene. Prednost "broadcasting" načina je da poslužitelj ne troši dodatnu memoriju na pohranu mape vrijednosti predmemoriranih na strani klijenta, ali je nedostatak što se povećava broj poslanih poruka.
  • Broker poruka Disque, koji vam omogućuje korištenje Redisa za obradu redova poruka, uklonjen je iz osnovne strukture u zasebni modul.
  • Dodano Cluster Proxy, proxy za klaster Redis poslužitelja, omogućavajući klijentu da organizira rad s nekoliko Redis poslužitelja kao da su jedna instanca. Proxy može usmjeravati zahtjeve prema čvorovima s potrebnim podacima, multipleksnim vezama, rekonfigurirati klaster ako se otkriju kvarovi čvorova i izvršavati zahtjeve koji obuhvaćaju više čvorova.
  • API za pisanje modula značajno je poboljšan, u biti pretvara Redis u okvir koji vam omogućuje stvaranje sustava u obliku dodatnih modula.
  • Implementiran je način replikacije u kojem se RDB datoteke brišu odmah nakon što su korištene.
  • Protokol replikacije PSYNC2 je poboljšan, što je omogućilo češće izvođenje djelomične resinkronizacije, povećavajući šanse za identificiranje pomaka zajedničkih za repliku i master.
  • Ubrzano je učitavanje RDB datoteka. Ovisno o sadržaju datoteke, ubrzanje se kreće od 20 do 30%. Izvršenje naredbe INFO značajno je ubrzano kada postoji veliki broj povezanih klijenata.
  • Dodana je nova naredba STRALGO s implementacijom složenih algoritama za obradu nizova. Trenutno je dostupan samo jedan algoritam LCS (najduža zajednička podsekvenca), koji može biti koristan pri usporedbi RNA i DNA sekvenci.

Izvor: opennet.ru

Dodajte komentar