A Redis projekt visszatért a nyílt licenc használatához. Bemutatták a Redis 8.0-át

A Redis Ltd bejelentette a projekt licencpolitikájának megváltozását. A Redis 8.0 kiadásától kezdve a projekt kódja szabad AGPLv3 licenc alatt érhető el. A nyílt licencre való áttérés lehetővé vált Salvatore Sanfilippo, a Redis adatbázis-kezelő rendszer létrehozójának visszatérése révén a céghez. Salvatore távozása után több vektorszett kiterjesztést fejlesztett, amelyeket hajlandó volt az Redishez csatolni, de azt akarta, hogy az általa készített kód nyílt licenc alatt kerüljön kiadásra. Salvatore sikerült meggyőznie kollégáit a projekt nyílt jellege helyreállításának szükségességéről és a közösséggel való jobb együttműködésről.

Rowan Trollope, a Redis Ltd igazgatója kijelentette, hogy a múlt évben a tulajdonjogvédett licencekre való áttérés elérte célját, mivel az AWS és a Google forkokat alapítottak, részt vettek a közös fejlesztésben, és megosztották korábbi munkáikat. Ugyanakkor a licencváltás ártott a közösséggel való kapcsolatoknak, amelyeket a cég most megpróbál helyreállítani, visszatérve a kód szabad licencek alatti kiadásához.

A tulajdonjogvédett licencekre való áttérés után a Redis nyílt kódú bázisának fejlesztése a Valkey forkban folytatódott (fork, amelyet az Amazon, Google, Oracle, Ericsson és Snap közreműködésével fejlesztenek), a Redict (Sway felhasználói felület és a Hare nyelv alkotójától származó fork), a Garnet (a Microsoft Redis-hoz kompatibilis adatbázisa) és a KeyDB (a Snapchat által készített, a Redis 5-ön alapuló magas teljesítményű fork). A Debian 13, Ubuntu 24.10, Fedora 41, RHEL 10, Azure Linux 3, Arch Linux és Alpine 3.20 disztribúciós tárolókban a Redis csomag a Valkey forkra cserélődött.

A Redis kezdetben BSD engedéllyel került kiadásra, amely lehetővé tette a változtatások titokban tartását, majd áttért a RSALv2 (Redis Source Available License v2) és SSPLv1 (Server Side Public License v1) tulajdonosi engedélyekre. A Redis 8-tól kezdődően a projekt kódja AGPLv3 engedély alatt érhető el, amelynek sajátossága, hogy korlátozásokat tartalmaz a hálózati szolgáltatások működését biztosító alkalmazások számára. AGPL komponensek használata esetén a fejlesztőnek kötelező a felhasználónak a komponensekben végrehajtott összes módosítás forráskódját biztosítani, még akkor is, ha a szolgáltatás alapjául szolgáló szoftver nincs terjesztve, és kizárólag belső infrastruktúrában használják a szolgáltatás működtetésére. Az AGPLv3 engedély kompatibilis a GPLv3-mal, de konfliktusban áll a GPLv2 engedéllyel.

A korábban használt SSPL és RSAL engedélyek egyes felhasználói kategóriák diszkriminációját eredményezték, ami miatt nem tekinthetők nyílt vagy szabad engedélyeknek. Céljaik szempontjából a két engedély hasonló, a különbségek abban állnak, hogy az SSPL engedély a copyleft AGPLv3 engedélyre alapozódik, míg az RSAL engedély a permisszív BSD engedélyre. Az RSAL engedély lehetővé teszi a kód használatát, módosítását, terjesztését és alkalmazásokba való integrálását, kivéve, amikor ezek az alkalmazások kereskedelmi célúak vagy menedzselt fizetős szolgáltatások nyújtására használják őket. Az SSPL engedély emellett megköveteli, hogy nemcsak az alkalmazás forráskódját, hanem a felhőszolgáltatás biztosításához érintett összes összetevő forrásszövegét is ugyanazon engedély alatt biztosítsák.

A licencváltás bejelentésével egy időben megjelent a Redis 8.0. Nemcsak a kiadás elérhetősége van bejelentve, hanem a tárolóban jelenleg csak egy kiadásra jelölt verzió található, és a Redis 8.0 letöltési hivatkozása a projekt honlapján a telepítési folyamat általános leírásához vezet. A kiadás megjegyzései között jelenleg csak a 8.0-RC1 verzió van feltüntetve.

A Redis 8.0 főbb változásai:

  • Hozzáadva egy tárolási típus a gépi tanulás és a szemantikus keresés során igényelt vektornyújtó adathalmazokhoz. A vektornyújtó szettek (vector set) bővítik a korábban elérhető rendezett listák (sorted set) funkcionalitását a többdimenziós vektorok tárolásának lehetőségével. Vektoradatok kezelésére 11 új parancs került bevezetésre, mint például a VADD, VREM és VSIM.
  • A Redis alapértelmezett összetételébe átkerültek a Redis Query Engine, JSON, Idősorok és Valószínűségi Adatstruktúrák moduljai, amelyek korábban külön Redis Stack kiterjesztésként voltak elérhetők.
  • Integrálták a JSON adatstruktúra támogatását, amely lehetővé teszi a JSON formátumú dokumentumok kulcsokhoz való tárolását a Redis-ben. JSON dokumentumok szelektív lekérdezésére és egyes elemekhez való hozzáférésre a JSONPath lekérdezési nyelv alkalmazható. Jelen van az atomikus frissítés támogatása is, amely lehetővé teszi a JSON dokumentum egyes mezőinek módosítását anélkül, hogy az egész dokumentumot újra kellene tölteni.
  • Hozzáadva a struktúrák támogatása idősort (az időt és az ahhoz kapcsolódó értékek készletét alkotva például szenzorok állapotának időszakos lekérdezésével vagy metrikák gyűjtésével). A memóriafogyasztás csökkentése érdekében használt algoritmusokat alkalmaztak az ilyen adatok tömörítésére, valamint lehetőség nyílik az archív adatok ritkítására vonatkozó szabályok (downsampling) meghatározására.
  • Új valószínűségi adatstruktúrák kerültek hozzáadásra: Bloom filter, Cuckoo filter, Count-min sketch, Top-k és t-digest, amelyek jelentősen csökkentik az adatok tárolási méretét, ha szükséges nagyon nagy adatmennyiségek tárolásához, a pontosság elvesztése árán bizonyos műveletek végrehajtása során. A „Bloom filter” és a „Cuckoo filter” lehetővé teszi a halmazba való tartozás ellenőrzését, engedve hamis negatív eredményeket, miközben kizárja a meglévő elemek figyelmen kívül hagyását. A „Count-min sketch” előre jelzi egy érték említéseinek számát a halmazban. A „Top-k” lehetővé teszi a leggyakrabban előforduló értékek megtalálását. A „t-digest” lehetővé teszi az értékek kiválasztását, amelyek nagyobbak vagy kisebbek a megadottnál.
  • A Redis Query Engine beépítve a vektorkeresés támogatásával és a tartalom alapú minták kialakításának lehetőségeivel. A Redis Query Engine lehetővé teszi további indexek létrehozását a hashekben és JSON dokumentumokban tárolt adatokhoz.
  • Kiterjesztett ACL (Hozzáférés-vezérlő listák) támogatás, amely lehetővé teszi az adatokhoz való hozzáférés kulcsok alapján történő kezelését és különböző hozzáférési szabályok meghatározását, lehetővé téve a jogosultságok készleteinek hozzárendelését minden felhasználóhoz. Például az ACL segítségével meg lehet határozni, hogy mely felhasználók csatlakozhatnak a Redishez, mely kulcsokhoz van hozzáférésük, és milyen parancsokat hajthatnak végre. A Redis 8-ban új ACL kategóriák kerültek hozzáadásra az új adatszerkezetekhez.
  • Új parancsok kerültek bevezetésre a hash-ekkel való munkához:
    • HGETDEL — megadja és eltávolítja a hash mezőit a megadott kulcs alapján.
    • HGETEX — megadja a hash mezőit a megadott kulcs alapján, és beállítja számukra az élettartamot.
    • HSETEX — beállítja a hash mezőit a megadott kulcs alapján, és beállítja számukra az élettartamot.
  • Több mint 30 teljesítményoptimalizálás került végrehajtásra, amelyek egyes tesztek során 87%-os parancs-végrehajtási sebességnövekedést, 112%-os áteresztőképesség-növekedést, 18%-os replikációs sebességnövekedést és a Redis Query Engine-ben akár 16-szor gyorsabb lekérdezést eredményeztek (horizontális és vertikális skálázás révén). 149 tesztből álló készleten 90 parancs végrehajtása gyorsabb lett. Jelentősen megnövekedett az áteresztőképesség annak köszönhetően, hogy a parancsok feldolgozásához, a klienslekérdezések kezeléséhez, valamint a hálózati socketek írásához és olvasásához többszálú munkát vezettünk be. Új több szálon végzett bemeneti/kimeneti (io-threads) feldolgozási mechanizmus került javaslatra.
  • Új replikációs mechanizmus került bemutatásra, amely 35%-kal kevesebb memóriát fogyaszt, és 18%-kal gyorsabban működik. A blokkolások kiküszöbölése érdekében két különálló replikációs szálat alkalmaztak — az egyik a változások fő csomópontra való átvitelére, a másik a köztes csomópontokra való átvitelére szolgál.

A Redis adatbázis-kezelő rendszeren belüli adatok kezelésére olyan parancsok állnak rendelkezésre, mint az inkrementálás/dekrementálás, a listákra és halmazokra vonatkozó alapvető műveletek (összevonás, keresztmetszet), kulcsok átnevezése, többszörös lekérdezések és rendezési funkciók. Két tárolási mód támogatott: az adatok lemezre történő időszakos szinkronizálása és a változások naplózásának vezetése a lemezen. Az utóbbi esetben a változtatások teljes biztonsága garantált. Támogatottak a tranzakciók, amelyek lehetővé teszik egy lépésben csoportos parancsok végrehajtását, biztosítva azok konzisztenciáját és sorrendiségét (más kérések parancsai nem tudnak beavatkozni) a megadott parancsok végrehajtása során, és problémák esetén lehetőséget adva a változtatások visszavonására.

Lehetővé válik master-slave adatreplicációs rendszerek létrehozása több szerverekakár blokkolás nélküli üzemmódban is. Elérhető egy "kiadó/előfizető" üzenetküldő mód is, amely során egy csatorna jön létre, amelyen az üzenetek a feliratkozott kliensekhez eljutnak. Minden adat teljes mértékben a RAM-ban van gyorsítótárazva. Az ügyfélkönyvtárak a legnépszerűbb nyelvekhez érhetők el, beleértve a Perl, Python, PHP, Java, Ruby, Tcl, JavaScript/Node.js, Go és C# nyelveket.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster