Vydanie Redis 6.0 DBMS

Pripravené Vydanie DBMS Redis 6.0, patriace do triedy NoSQL systémov. Redis poskytuje funkcie podobné Memcached na ukladanie údajov kľúč/hodnota, rozšírené o podporu formátov štruktúrovaných údajov, ako sú zoznamy, hash a sady, a možnosť spúšťať skripty obsluhy Lua na strane servera. Kód projektu dodávané pod licenciou BSD. Ďalšie moduly, ktoré ponúkajú pokročilé možnosti pre podnikových používateľov, ako napríklad RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom od minulého roka dodávané na základe vlastnej licencie RSAL. Projekt pokračuje vo vývoji otvorených verzií týchto modulov pod licenciou AGPLv3 GoodFORM.

Na rozdiel od Memcached, Redis poskytuje trvalé ukladanie dát na disk a zaručuje bezpečnosť databázy v prípade núdzového vypnutia. Zdrojový kód projektu je šírený pod licenciou BSD. Klientske knižnice sú dostupné pre väčšinu populárnych jazykov vrátane Perl, Python, PHP, Java, Ruby a Tcl. Redis podporuje transakcie, ktoré vám umožňujú vykonať skupinu príkazov v jednom kroku, zaisťujú konzistentnosť a konzistenciu (príkazy z iných požiadaviek nemôžu zasahovať) pri vykonávaní danej sady príkazov a v prípade problémov umožňujú vrátiť späť zmeny. Všetky dáta sú plne uložené v pamäti RAM.

Na správu údajov sú k dispozícii príkazy ako zvýšenie/zníženie, štandardné operácie so zoznamom a množinou (zjednotenie, priesečník), premenovanie kláves, viacnásobný výber a funkcie triedenia. Podporované sú dva režimy ukladania: pravidelná synchronizácia údajov na disk a udržiavanie protokolu zmien na disku. V druhom prípade je zaručená úplná bezpečnosť všetkých zmien. Je možné organizovať replikáciu dát master-slave na niekoľko serverov, vykonávanú v neblokovanom režime. K dispozícii je aj režim zasielania správ „zverejniť/prihlásiť sa“, v ktorom sa vytvorí kanál, z ktorého sa správy distribuujú klientom prostredníctvom predplatného.

Kľúč vylepšeniapridané v Redis 6.0:

  • V predvolenom nastavení je navrhnutý nový protokol RESP3, ale nastavenie pripojenia začína v režime RESP2 a klient sa prepne na nový protokol iba vtedy, ak sa pri vyjednávaní pripojenia použije nový príkaz HELLO. RESP3 vám umožňuje priamo vrátiť komplexné dátové typy bez potreby konverzie generických polí na strane klienta a oddelením návratových typov.
  • Podpora zoznamu prístupových práv (ACL), čo vám umožňuje presne určiť, ktoré operácie môže klient vykonať a ktoré nie. ACL tiež umožňujú chrániť pred možnými chybami počas vývoja, napríklad handler, ktorý vykonáva iba operáciu BRPOPLPUSH, môže mať zakázané vykonávať ďalšie operácie a ak sa v produkčnom kóde omylom zabudne volanie FLUSHALL pridané počas ladenia, nevedie k problémom. Implementácia ACL nespôsobuje žiadne dodatočné náklady a nemá prakticky žiadny vplyv na výkon. Pre ACL boli pripravené aj moduly rozhrania, ktoré umožňujú vytvárať vlastné metódy autentifikácie. Na zobrazenie všetkých zaznamenaných porušení ACL je k dispozícii príkaz „ACL LOG“. Na generovanie nepredvídateľných kľúčov relácie bol pridaný príkaz "ACL GENPASS" pomocou HMAC na báze SHA256.
  • Podpora SSL / TLS na šifrovanie komunikačného kanála medzi klientom a serverom.
  • Podpora ukladanie údajov do vyrovnávacej pamäte na strane klienta. Na zosúladenie vyrovnávacej pamäte na strane klienta so stavom databázy sú dostupné dva režimy: 1. Zapamätanie si kľúčov na serveri, ktoré si klient predtým vyžiadal, aby ho informoval o strate relevantnosti záznamu v vyrovnávacej pamäti klienta. 2. Mechanizmus „vysielania“, v ktorom sa klient prihlási na odber určitých prefixov kľúčov a server ho upozorní, ak sa kľúče, ktoré spadajú pod tieto predpony, zmenia. Výhodou režimu „vysielania“ je, že server neplytvá ďalšou pamäťou na ukladanie mapy hodnôt uložených do vyrovnávacej pamäte na strane klienta, nevýhodou však je, že sa zvyšuje počet prenášaných správ.
  • Sprostredkovateľ správ Disque, ktorý vám umožňuje používať Redis na spracovanie frontov správ, bol odstránený zo základnej štruktúry v r. samostatný modul.
  • Pridané Proxy klastra, proxy pre klaster serverov Redis, ktorý umožňuje klientovi organizovať prácu s niekoľkými servermi Redis, ako keby išlo o jednu inštanciu. Proxy môže smerovať požiadavky na uzly s potrebnými údajmi, multiplexovať pripojenia, prekonfigurovať klaster, ak sa zistia zlyhania uzlov, a vykonávať požiadavky, ktoré zahŕňajú viacero uzlov.
  • API pre písanie modulov bolo výrazne vylepšené, čím sa v podstate Redis zmenil na framework, ktorý umožňuje vytvárať systémy vo forme prídavných modulov.
  • Bol implementovaný režim replikácie, v ktorom sa súbory RDB po použití okamžite vymažú.
  • Replikačný protokol PSYNC2 bol vylepšený, čo umožnilo častejšie vykonávať čiastočnú resynchronizáciu, a to zvýšením šancí na identifikáciu posunov spoločných pre repliku a master.
  • Načítanie súborov RDB bolo zrýchlené. V závislosti od obsahu súboru sa zrýchlenie pohybuje od 20 do 30 %. Vykonávanie príkazu INFO sa výrazne zrýchlilo pri veľkom počte pripojených klientov.
  • Bol pridaný nový príkaz STRALGO s implementáciou komplexných algoritmov spracovania reťazcov. V súčasnosti je k dispozícii iba jeden algoritmus LCS (najdlhšia spoločná subsekvencia), ktorý môže byť užitočný pri porovnávaní sekvencií RNA a DNA.

Zdroj: opennet.ru

Pridať komentár