Megjelent a Redis 8.2 kiadása, amely a NoSQL rendszerek osztályába tartozik. A Redis funkciókat kínál adatok tárolására kulcs/érték formátumban, kibővítve struktúrált adatformátumok, például listák, hash-ek és halmazok támogatásával, valamint Lua nyelven írt kezelőszkriptek végrehajtásának lehetőségével a szerveroldalon. A projekt kódja C nyelven készült és AGPLv3 licenc alatt terjesztik.
A Redis támogatja a tranzakciókat, amelyek lehetővé teszik, hogy egy lépésben végrehajtsunk egy parancsgyűjteményt, garantálva az összeférhetőséget és a folyamatosságot (más kérdések parancsai nem tudnak beékelődni) a megadott parancsgyűjtemény végrehajtása során, és problémák esetén lehetővé teszi a módosítások visszavonását. Minden adat teljes mértékben a memóriában kerül tárolásra. Ügyfélkönyvtárak elérhetők a legnépszerűbb nyelvekhez, beleértve a Perl, Python, PHP, Java, Ruby és Tcl nyelveket is.
Az adatok kezelésére olyan parancsokat biztosítanak, mint az inkrementálás/dekrementálás, a listák és halmazok standard műveletei (egyesítés, metszet), a kulcsok átnevezése, többszörös kiválasztás és rendezési funkciók. Két tárolási mód támogatott: az adatok időszakos szinkronizálása a lemezre, valamint a változások naplózása a lemezen. A második esetben a módosítások teljes biztonsággal garantáltan megmaradnak. Lehetséges master-slave adatmásolás több szerverek, amely nem blokkoló módban történik. Elérhető a "publikálás/előfizetés" üzenetváltási mód is, amelyben egy csatorna jön létre, és az azon lévő üzenetek a feliratkozó ügyfelek számára terjednek.
Főbb változások a Redis 8.2-ben:
- Több mint 70 parancs optimalizálására került sor, amelyek gyorsabban működnek, mint a Redis 8.0. Például a BITCOUNT parancs 35%-kal gyorsabb lett, míg a listával kapcsolatos parancsok, mint az LINSERT, LREM és LPOS, 25%-kal gyorsabbak. Az optimalizált parancsok közül 17 legalább 5%-kal, 52 pedig legalább 2%-kal gyorsabbá vált.

- Optimalizálás történt a párhuzamos műveletek és a több szálú bemenet/kimenet kezelésében, amely lehetővé tette a másodpercenként feldolgozott műveletek számának 49%-os növelését a 8 bemeneti/kimeneti szálas tesztekben, 20%-os írási és 80%-os olvasási terhelés elosztással. Egyes tesztekben szerveren több mint 1 millió feldolgozott műveletet sikerült túllépni.

- Alapvetően megváltozott a kulcs/érték formátumban történő adatok tárolásának módszere — most egy egységesített kvobj struktúrát használnak a kulcs neve, a rövid érték és az élettartam egy memóriablokkon belüli tárolására, amely lehetővé teszi az egyetlen hivatkozás használatát a hash táblákban, ahelyett, hogy külön hivatkozások lennének a kulcsokra, adatokra és TTL-re. Rövid karakterláncok tárolása esetén az új tárolási módszer 25-37%-kal csökkentheti a memóriafogyasztást.

- Optimalizálás történt a JSON formátumú adatok tárolásában is, ami 25-67%-kal csökkentette a memóriafogyasztást egész számok és lebegőpontos számok tárolásakor.
- Az üzenetfolyamok feldolgozására és tárolására használt Streams mechanizmushoz új XACKDEL és XDELEX parancsok kerültek be, amelyek megkönnyítik a több fogadó (consumer groups) által használt folyamokkal való munkát. Ezek a parancsok az üzenet eltávolítását csak akkor végzik el, ha annak fogadását minden kezelő megerősítette.
- A BITOP parancs, amely bitműveletek végrehajtására szolgál, új logikai operátorokat kapott: DIFF, DIFF1, ANDOR és ONE.
- Új vektor index típust vezettek be, az SVS-VAMANA-t, amely támogatja a vektorok tömörítését.
- Új metrikák kerültek hozzáadásra: terhelés az egyes slotok szintjén és a kulcsok méretének eloszlása az alapadat-típusokhoz.
Forrás: opennet.ru



