Bol release databázového systému Redis 7.4, ktorý patrí do triedy NoSQL systémov. Redis ponúka 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 spracovateľské skripty v jazyku Lua. Na rozdiel od systémov ukladania v operačnej pamäti, ako je Memcached, Redis uchováva databázu nielen v pamäti, ale aj na disku, čo zaručuje jej zachovanie v prípade havárie.
Redis 7.4 je prvá verzia, ktorá sa distribuuje s novými podmienkami licencovania — namiesto predtým používan licencie BSD je kód teraz dostupný pod proprietárnymi licenciami RSALv2 (Redis Source Available License v2) a SSPLv1 (Server Side Public License v1). Záujemcovia, ktorí chcú pokračovať v používaní kódu pod licenciou BSD, môžu využiť projekty Valkey (fork, vyvíjaný za účasti Amazonu, Googlu, Oracle, Ericssonu a Snap), Redict (fork od autora používateľskej shell Sway a jazyka Hare), Garnet (databázový systém od Microsoftu, kompatibilný s Redis) alebo KeyDB (vysokovýkonný fork Redis 5 od Snapchat).
Licencie SSPL a RSAL vedú k diskriminácii určitých kategórií používateľov, čo neumožňuje považovať ich za otvorené alebo slobodné. Svojimi cieľmi sú obe licencie podobné, pričom rozdiely spočívajú v tom, že licencia SSPL je založená na copyleft licencii AGPLv3, zatiaľ čo licencia RSAL je založená na permissívnej licencii BSD. Licencia RSAL umožňuje používať, upravovať, šíriť a integrovať kód do aplikácií, okrem prípadov, keď sú tieto aplikácie komerčné alebo sa používajú na poskytovanie spravovaných platených služieb. Licencia SSPL navyše obsahuje požiadavku na dodanie nielen kódu samotnej aplikácie, ale aj zdrojových textov všetkých komponentov zapojených do poskytovania cloudovej služby.
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 funkčnosti Redis 7.4:
- Pridaná možnosť obmedzenia životnosti jednotlivých polí v hashovacích štruktúrach na ukladanie skupinových záznamov vo formáte kľúč-hodnota. Na rozdiel od priradenia časového limitu kľúču, navrhnutá zmena umožňuje stanoviť nielen celkovú životnosť pre všetky súvisiace polia, ale aj individuálne časové limity pre jednotlivé polia, čo môže byť využité napríklad na zabezpečenie kratšieho životného cyklu autentifikačných tokenov v porovnaní s inými dátami relácie.
- Navrhnuté nové typy dát bfloat16 a float16, optimalizované na použitie v aplikáciách strojového učenia a umožňujúce znížiť spotrebu pamäte v porovnaní s predtým dostupnými typmi float32 a float64. Pri použití v hashovacích štruktúrach nové typy umožňujú znížiť spotrebu pamäte vo vektorových databázach o 47 %, znížiť latenciu pri získavaní dát o 59 % a skrátiť čas vytvárania indexov o 58 % v porovnaní s typom float64.
- Zjednodušené využívanie sekundárnych indexov. Pri požiadavkach na informácie zo sekundárnych indexov už nie je potrebné escapovať jednotlivé špeciálne znaky, ako sú „@“ a „.“, a namiesto toho je možné použiť dvojité úvodzovky na ohraničenie dát. Taktiež bolo výrazne vylepšené indexovanie prázdnych a chýbajúcich polí — pre vytváranie indexov a formovanie požiadaviek zohľadňujúcich existenciu polí boli navrhnuté nové kľúčové slovo INDEXMISSING a funkcia ismissing(). Pridané nové operátory INTERSECT a DISJOINT na zjednodušenie vyhľadávania geografických dát. Pridané možnosti na analýzu spotreby pamäte indexom.
- Pridaná podpora filtrov na odfiltrovanie prvkov v pridávaných súboroch údajov, napríklad pri periodickom načítavaní dát z čidiel do databázy môže byť pridaný filter na ignorovanie hodnôt, ktorých rozdiel času s predchádzajúcou hodnotou je menší ako určité prahové hodnota.
- Ukončená podpora spúšťačov a funkcií v jazyku JavaScript, navrhnutých v predchádzajúcej verzii.
Zdroj: opennet.ru
