Bol zverejnený uvedenie databázového systému Redis 8.2, ktorý patrí do triedy NoSQL systémov. Redis poskytuje funkcie na ukladanie dát vo formáte kľúč/hodnota, rozšírené podporou štruktúrovaných formátov dát, ako sú zoznamy, hash a množiny, ako aj možnosť vykonávať na strane servera skripty spracovateľov v jazyku Lua. Kód projektu je napísaný v jazyku C a je distribuovaný pod licenciou AGPLv3.
Databázový systém Redis podporuje transakcie, ktoré umožňujú vykonať v jednom kroku skupinu príkazov, zaručujúcich konzistenciu a sekvenčnosť (príkazy z iných požiadaviek nemôžu zasahovať) vykonávania zadaného súboru príkazov, a v prípade problémov umožňujú späť zmeny. Všetky dáta sú plne cacheované v operačnej pamäti. Klientske knižnice sú k dispozícii pre väčšinu populárnych jazykov, vrátane Perl, Python, PHP, Java, Ruby a Tcl.
Na správu údajov sú k dispozícii také príkazy, ako sú inkrementácia/dekrementácia, štandardné operácie nad zoznamami a množinami (zlučovanie, prienik), premenovanie kľúčov, viaceré výbery a funkcie triedenia. Podporujú sa dva režimy ukladania: periodická synchronizácia údajov na disku a vedenie logu zmien na disku. V druhom prípade je garantovaná plná ochrana všetkých zmien. Je možné organizovať master-slave replikáciu údajov na niekoľko serverov, vykonávanú v neblokujúcom režime. K dispozícii je aj režim výmeny správ „publikovanie/odber“, pri ktorom sa vytvára kanál, správy z ktorého sa šíria klientom na základe odberu.
Kľúčové zmeny v Redis 8.2:
- Optimalizovaných viac ako 70 príkazov, ktoré teraz pracujú rýchlejšie ako v Redis 8.0. Napríklad príkaz BITCOUNT sa zrýchlil o 35%, zatiaľ čo príkazy pre operácie so zoznamami LINSERT, LREM a LPOS sa zrýchlili o 25%. 17 z optimalizovaných príkazov sa zrýchlilo minimálne o 5% a 52 minimálne o 2%.

- Optimalizácie kódu pre spracovanie súbežných operácií a viacvláknového vstupu/výstupu, čo umožnilo zvýšiť počet spracovaných operácií za sekundu v testoch s 8 vláknami vstupu/výstupu o 49% pri rozdelení záťaže 20% požiadaviek na zápis a 80% na čítanie. Na jednom serveri sa podarilo prekonať hranicu 1 milióna spracovaných operácií za sekundu.

- Fundamentálne bol zmenený spôsob ukladania dát vo formáte kľúč/hodnota — na ukladanie sa teraz používa unifikovaná štruktúra kvobj, ktorá umožňuje zabaliť názov kľúča, krátku hodnotu a časový úsek do jedného bloku pridelené pamäte a zaobísť sa jednou referenciou na túto štruktúru v hash tabuľkách, namiesto samostatných referencií na kľúče, údaje a TTL. Pri ukladaní krátkych reťazcových hodnôt nový spôsob ukladania umožnil znížiť spotrebu pamäte o 25-37%.

- Optimalizované ukladanie dát vo formáte JSON, ktoré umožnilo znížiť spotrebu pamäte o 25-67% pri ukladaní celých čísel a čísel s pohyblivou desatinnou čiarkou.
- Do mechanizmu Streams, ktorý sa používa na spracovanie a ukladanie toku správ, boli pridané nové príkazy XACKDEL a XDELEX, ktoré zjednodušujú prácu s tokmi, ku ktorým je pripojených niekoľko príjemcov (consumer groups). Tieto príkazy riešia problém odstránenia správy až po tom, čo jej prijatie potvrdia všetci spracovatelia.
- Do príkazu BITOP, určeného na vykonávanie bitových operácií, boli pridané nové logické operátory DIFF, DIFF1, ANDOR a ONE.
- Bol pridaný nový typ indexov vektorov SVS-VAMANA, ktorý podporuje kompresiu vektorov.
- Boli pridané nové metriky: zaťaženie v rámci jednotlivých slotov a rozdelenie veľkostí kľúčov pre základné typy dát.
Zdroj: opennet.ru



