A Redis 7.0 adatbázis-kezelő rendszer kiadása.

Megjelent a Redis 7.0 adatbázis-kezelő rendszer kiadása, amely a NoSQL rendszerek közé tartozik. A Redis funkciókat biztosít az adatok kulcs/érték formátumban való tárolásához, kibővítve a strukturált adatformátumok, például listák, hashek és halmazok támogatásával, valamint a Lua nyelvű kezelőszkriptek szerveroldali futtatásának lehetőségével. A projekt kódja BSD licenc alatt érhető el. A kiterjesztett lehetőségeket kínáló további modulok, például a RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, 2019 óta RSAL tulajdonjogú licenc alatt érhetők el. A nyílt verziók fejlesztését, AGPLv3 licenc alatt, a GoodFORM projekt próbálta folytatni, amely az utóbbi időben stagnálás alatt áll.

A Memcached-hez hasonló, memória alapú tárolórendszerekkel ellentétben a Redis tartós adatmentést biztosít a lemezen, és garantálja az adatbázis biztonságát hiba esetén. A projekt forráskódja BSD licenc alatt terjed. Az ügyféllibrary-k a legnépszerűbb nyelvek többsége számára elérhetők, beleértve a Perl, Python, PHP, Java, Ruby és Tcl nyelveket. A Redis támogatja a tranzakciókat, amelyek lehetővé teszik egy parancsgyűjtemény egy lépésben történő végrehajtását, garantálva a következetességet és a koherenciát (más kérések nem fognak közbeszólni) a megadott parancsok végrehajtása során, és probléma esetén lehetőséget adva a módosítások visszavonására. Az összes adat teljes mértékben a memóriában van cache-elve.

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.

A Redis 7.0 kulcsfontosságú változásai:

  • A szerveroldali végrehajtott funkciók támogatása hozzáadva a szerver. A korábban támogatott Lua nyelvű szkripttől eltérően a funkciók nem köthetők alkalmazásokhoz, és céljuk a szerver lehetőségeinek további logikával való kiterjesztése. A funkciók szorosan integrálódnak az adatokkal és az adatbázisra vonatkoznak, nem pedig az alkalmazásra, beleértve a replikációt és a tartós tárolásba való mentést is.
  • Javasolt egy második ACL-kiadás, amely lehetővé teszi az adatokhoz való hozzáférés kezelését kulcsok alapján, és különböző hozzáférési szabálykészletek definiálását biztosít a parancsokhoz, lehetővé téve több kiválasztó (jogosultságkészlet) hozzárendelését minden felhasználóhoz. Minden kulcs egy adott jogosultsággal azonosítható, például korlátozható a hozzáférés csak olvasási vagy írási joggal egy adott kulcskészlethez.
  • Elérhetővé vált a klaszterben működő, szekcionált (sharded) megvalósítás a közzétételre és feliratkozásra épülő üzenetküldési paradigmában, ahol az üzenet egy meghatározott csomópontnak kerül elküldésre, amelyhez a csatorna van hozzárendelve, majd ezt az üzenetet továbbítják a szekcióhoz (shard) tartozó többi csomópontnak. Az ügyfelek feliratkozhatnak a csatornára, csatlakozva a fő csomóponthoz vagy a szekció másodlagos csomópontjaihoz. A kezelés az SSUBSCRIBE, SUNSUBSCRIBE és SPUBLISH parancsokkal történik.
  • Hozzáadva a támogatás a különböző kontextusokban történő alkérdések kezelésére.
  • Új parancsok kerültek bevezetésre:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • COMMAND DOCS, COMMAND LIST.
    • LATENCY HISTOGRAM.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • CLIENT NO-EVICT.
    • ACL DRYRUN.
  • Lehetővé vált több konfiguráció egyes kezelése egy CONFIG SET/GET hívás során.
  • A redis-cli eszközhöz hozzáadták a „—json”, „-2”, „—scan”, „—functions-rdb” opciókat.
  • Alapértelmezés szerint letiltották a kliensek hozzáférését a biztonságra ható beállításokhoz és parancsokhoz (például letiltották a DEBUG és MODULE parancsokat, tilos a PROTECTED_CONFIG flaggel rendelkező konfigurációk módosítása). A redis-cli-nál megszüntették a parancsmúlt fájlba írását, amely érzékeny adatokat tartalmaz.
  • Jelentős optimizálások kerültek bevezetésre a teljesítmény javítása és a memóriafogyasztás csökkentése érdekében. Például jelentősen csökkent a memóriafogyasztás a klaszter üzemmód aktiválásakor, a másolás-írásmódbeli (copy-on-write) műveletek során, valamint a hash- és zset kulcsok kezelésénél. Javult az adatok lemezre írásának logikája (fsync hívások). Csökkent a hálózati csomagok és a rendszerhívások száma az ügyfélnek küldött válaszok megküldésekor. Növekedett a replikáció hatékonysága.
  • Javították a CVE-2022-24735 sebezhetőséget a Lua-scriptek futtatási környezetében, amely lehetővé tette a saját Lua-kód behelyettesítését és annak végrehajtását egy másik felhasználó, köztük magasabb jogosultságokkal rendelkező felhasználó kontextusában.
  • Javították a CVE-2022-24736 sebezhetőséget, amely lehetővé tette a redis-server folyamat kényszerített leállítását egy nullpointer dereferálása miatt. A támadás a speciálisan megformált Lua-scriptek betöltése révén történik.

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