Projekt Redis sa vrátil k používaniu otvorenej licencie. Predstavený Redis 8.0.

Spoločnosť Redis Ltd oznámila zmenu licenčnej politiky projektu. Od vydania Redis 8.0 je projektový kód dostupný pod voľnou licenciou AGPLv3. Prechod na otvorenú licenciu bol možný vďaka návratu do spoločnosti Salvatorea Sanfilippa, zakladateľa databázového systému Redis. Po svojom odchode zo spoločnosti Redis Ltd Salvatore vyvinul súbor vektorových rozšírení (Vector Sets), ktoré bol pripravený zahrnúť do Redis, ale chcel, aby jeho vytvorený kód bol dodávaný pod otvorenou licenciou. Salvatore sa podarilo presvedčiť kolegov o účelnosti obnovenia otvoreného charakteru projektu a zlepšenia interakcie s komunitou.

Rowan Trollope, riaditeľ Redis Ltd, uviedol, že prechod na proprietárne licencie, ktorý sa uskutočnil minulý rok, splnil svoj cieľ, pretože spoločnosti AWS a Google založili fork, začali sa podieľať na spolupráci a zdieľať svoje minulé práce. Zmena licencií však poškodila vzťahy s komunitou, ktoré teraz spoločnosť bude snažiť obnoviť návratom k dodávaniu kódu pod voľnou licenciou.

Po prechode na proprietárne licencie pokračoval vývoj otvorenej kódovej základne Redis vo forkách Valkey (fork, ktorý vyvíja Amazon, Google, Oracle, Ericsson a Snap), Redict (fork od autora užívateľského prostredia Sway a jazyka Hare), Garnet (databázový systém od Microsoftu, kompatibilný s Redis) a KeyDB (vysoko výkonný fork Redis 5 od Snapchatu). V repozitároch distribúcií Debian 13, Ubuntu 24.10, Fedora 41, RHEL 10, Azure Linux 3, Arch Linux a Alpine 3.20 bol balík Redis nahradený fork Valkey.

Pôvodne bol Redis dodávaný pod povolením BSD, ktoré umožňovalo nezverejňovať svoje zmeny, po čom prešiel na proprietárne licencie RSALv2 (Redis Source Available License v2) a SSPLv1 (Server Side Public License v1). Od verzie Redis 8 je kód projektu dostupný pod licenciou AGPLv3, ktorá má špecifické obmedzenia pre aplikácie zabezpečujúce fungovanie sieťových služieb. Pri použití AGPL komponentov v sieťových službách je vývojár povinný poskytnúť používateľovi zdrojový kód všetkých vykonaných zmien týchto komponentov, aj keď základný softvér služby nie je šírený a používa sa výhradne vo vnútornej infraštruktúre na organizovanie práce služby. Licencia AGPLv3 je kompatibilná s GPLv3, ale konfliktuje s licenciou GPLv2.

Predchádzajúce licencie SSPL a RSAL viedli k diskriminácii určitých kategórií používateľov, čo neumožnilo považovať ich za otvorené alebo slobodné. Z hľadiska svojich cieľov sú obe licencie podobné, pričom rozdiely spočívajú v tom, že licencia SSPL je založená na copyleft licencií AGPLv3, zatiaľ čo licencia RSAL je založená na permissívnej licencii BSD. Licencia RSAL umožňuje používať, meniť, distribuovať a integrovať kód do aplikácií, s výnimkou prípadov, keď sú tieto aplikácie komerčné alebo sa používajú na poskytovanie riadených platených služieb. Licencia SSPL navyše obsahuje požiadavku dodania pod tou istou licenciou nielen kódu aplikácie, ale aj zdrojových textov všetkých komponentov zapojených do poskytovania cloudovej služby.

Súčasne s oznámením o zmene licencie bol uvedený release Redis 8.0. Napriek tomu, že bolo oznámené o dostupnosti release, v repozitári je zatiaľ umiestnená iba kandidátska verzia, a odkaz na stiahnutie Redis 8.0 na stránke projektu vedie na stránku s všeobecným popisom inštalačného procesu. V poznámke k release je zatiaľ spomenutý iba vydanie 8.0-RC1.

Hlavné zmeny v Redis 8.0:

  • Bol pridaný typ pre ukladanie množín vektorových dát, ktoré sú požadované v systémoch strojového učenia a sémantického vyhľadávania. Vektorové množiny (vector set) rozširujú predtým dostupnú funkcionalitu usporiadaných zoznamov (sorted set) možnosťou ukladania viadcien vektorov. Pre manipuláciu s vektorovými dátami bolo pridaných 11 nových príkazov, ako VADD, VREM a VSIM.
  • Do hlavnej zostavy Redis boli presunuté moduly Redis Query Engine, JSON, Time Series a Probabilistic Data Types, ktoré sa predtým dodávali vo forme samostatných rozšírení Redis Stack.
  • Integrovaná podpora dátovej štruktúry JSON, ktorá umožňuje uchovávať dokumenty vo formáte JSON spojené s kľúčmi v Redis. Na selektívne extrahovanie JSON-dokumentov a prístup k jednotlivým elementom môže byť použitý jazyk dotazovania JSONPath. Existuje podpora atómového aktualizovania, ktorá umožňuje vykonávať zmeny v jednotlivých poliach JSON-dokumentu bez načítania celého dokumentu.
  • Pridaná podpora dátových štruktúr vo forme časovej rady (záznam vytvára čas a súbor hodnôt zodpovedajúcich tomuto času, napríklad získaných prostredníctvom periodického dotazovania stavu senzorov alebo zberu metrík). Na zníženie spotreby pamäte boli využité algoritmy na kompresiu týchto dát a bola poskytnutá možnosť definovania pravidiel redukcie archívnych dát (downsampling).
  • Boli pridané pravdepodobnostné dátové štruktúry: Bloom filter, Cuckoo filter, Count-min sketch, Top-k a t-digest, ktoré umožňujú výrazne znížiť veľkosť úložiska pri potrebnom uchovávaní veľmi veľkých objemov dát na úkor presnosti pri vykonávaní niektorých operácií. „Bloom filter“ a „Cuckoo filter“ umožňujú overiť prítomnosť v množine, pričom dovoľujú falošnú identifikáciu chýbajúceho prvku, ale vylučujú vynechanie existujúceho prvku. „Count-min sketch“ predpovedá počet zmienok hodnoty v množine. „Top-k“ umožňuje nájsť najčastejšie sa vyskytujúce hodnoty. „T-digest“ umožňuje vykonávať výbery hodnôt väčších alebo menších ako zadané.
  • Do súboru bol zahrnutý engine „Redis Query Engine“ s podporou vektorového vyhľadávania a možnosťami pre vytváranie výberov podľa obsahu, a nie podľa kľúčov. Redis Query Engine umožňuje vytvárať ďalšie indexy pre dáta uložené v hash a JSON-dokumentoch.
  • Rozšírená podpora ACL (Access Control Lists), ktorá umožňuje spravovať prístup k údajom na základe kľúčov a umožňuje definovanie rôznych súborov prístupových pravidiel pre príkazy s možnosťou priradenia súborov oprávnení ku každému používateľovi. Napríklad pomocou ACL je možné určiť, ktorí používatelia sa môžu pripojiť k Redis, ku ktorým kľúčom má používateľ prístup a aké príkazy môže vykonávať. V Redis 8 boli pridané nové kategórie ACL pre nové štruktúry údajov.
  • Pridané nové príkazy na prácu s hashami:
    • HGETDEL — vráti a vymaže polia hash podľa zadaného kľúča.
    • HGETEX — vráti polia hash podľa zadaného kľúča a určí pre ne čas života.
    • HSETEX — nastaví polia hash podľa zadaného kľúča a určí pre ne čas života.
  • Zavedených viac ako 30 optimalizácií výkonu, ktoré v niektorých testoch vedú k zrýchleniu vykonávania príkazov o 87%, zvýšeniu priepustnosti o 112%, zrýchleniu replikácie o 18% a zrýchleniu dotazovania v Redis Query Engine až 16 krát (vďaka horizontálnemu a vertikálnemu škálovaniu). Pri vykonávaní sady 149 testov bolo 90 príkazov vykonaných rýchlejšie. Výrazne sa zvýšila priepustnosť vďaka prechodu na viaceré vlákna pre komponenty na rozborku príkazov, spracovanie požiadaviek klientov, čítanie a zápis do sieťových soketov. Predložená nová implementácia mechanizmu viacvláknového spracovania vstupu/výstupu (io-threads).
  • Predstavený nový mechanizmus replikácie, ktorý spotrebováva o 35% menej pamäte a je o 18% rýchlejší. Na vylúčenie zámkov sú zapojené dva samostatné vlákna replikácie — jedno na prenos zmien na hlavný uzol a druhé na prenos zmien na medzifázové uzly.

Na správu dát v DB Redis sú k dispozícii také príkazy, ako sú inkrementácia/dekrementácia, štandardné operácie nad zoznamami a množinami (zlučovanie, prienik), premenovávanie kľúčov, viaceré výbery a funkcie triedenia. Podporujú sa dva režimy ukladania: periodická synchronizácia dát na disk a vedenie logu zmien na disku. V druhom prípade je zaručená úplná zachovanosť všetkých zmien. Podporujú sa transakcie, ktoré umožňujú vykonanie skupiny príkazov za jeden krok, pričom sa zaručuje konzistentnosť a sekvenčnosť (príkazy z iných požiadaviek sa nemôžu vklínit') pri vykonávaní zadaného súboru príkazov a v prípade problémov umožňujú vrátiť zmeny.

Je možná organizácia master-slave replikácie dát na niekoľko serverov, uskutočňovaná v neblokujúcom režime. K dispozícii je aj režim zasielania správ „publikácia/predplatné“, pri ktorom sa vytvára kanál, správy z ktorého sa distribuujú klientom na základe predplatného. Všetky dáta sú v plnom rozsahu cache-ované v operačnej pamäti. Klientske knižnice sú dostupné pre väčšinu populárnych jazykov, vrátane Perl, Python, PHP, Java, Ruby, Tcl, JavaScript/Node.js, Go a C#.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster