Redis 7.0 DBMS kiadása

Megjelent a NoSQL rendszerek osztályába tartozó Redis 7.0 DBMS kiadása. A Redis funkciókat biztosít a kulcs-/értékadatok tárolására, amelyet a strukturált adatformátumok, például listák, hash-ek és készletek támogatása, valamint a Lua-ban szerveroldali szkriptkezelők futtatásának képessége tesz lehetővé. A projektkódot a BSD licenc alatt szállítjuk. A vállalati felhasználók számára fejlett képességeket kínáló további modulokat, mint például a RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, 2019 óta szabadalmaztatott RSAL-licenc alatt szállítják. Az utóbbi időben stagnáló GoodFORM projekt AGPLv3 licenc alatt próbálta folytatni ezeknek a moduloknak a nyílt verzióinak fejlesztését.

Ellentétben a memórián belüli tárolórendszerekkel, mint például a Memcached, a Redis gondoskodik arról, hogy az adatok folyamatosan a lemezen legyenek tárolva, és gondoskodik arról, hogy az adatbázis sértetlen maradjon összeomlás esetén. A projekt forráskódja a BSD licenc alatt kerül terjesztésre. Klienskönyvtárak állnak rendelkezésre a legtöbb népszerű nyelvhez, beleértve a Perl, Python, PHP, Java, Ruby és Tcl nyelveket. A Redis támogatja a tranzakciókat, amelyek lehetővé teszik egy parancscsoport egy lépésben történő végrehajtását, biztosítva a konzisztenciát és konzisztenciát (más kérésekből származó parancsok nem zavarhatnak) egy adott parancskészlet végrehajtásában, és probléma esetén lehetővé teszi a visszaállítást változtatások. Minden adat teljesen gyorsítótárban van a RAM-ban.

Az adatkezeléshez olyan parancsok állnak rendelkezésre, mint a növelés/csökkentés, a szabványos lista- és halmazműveletek (egyesítés, metszés), a kulcsok átnevezése, többszörös kijelölés és rendezési funkciók. Két tárolási mód támogatott: az adatok időszakos szinkronizálása a lemezzel és a változásnapló karbantartása a lemezen. A második esetben minden változtatás teljes biztonsága garantált. Lehetőség van a master-slave adatreplikáció megszervezésére több szerverre, nem blokkoló módban. Rendelkezésre áll egy „közzététel/feliratkozás” üzenetküldési mód is, amelyben létrejön egy csatorna, amelyről az üzenetek előfizetéssel jutnak el az ügyfelekhez.

Főbb változások a Redis 7.0-ban:

  • Támogatás hozzáadva a szerveroldali funkciókhoz. A Lua nyelven korábban támogatott szkriptekkel ellentétben a funkciók nincsenek az alkalmazáshoz kötve, és további logika megvalósítására irányulnak, amely kiterjeszti a szerver képességeit. A funkciók feldolgozása elválaszthatatlanul az adatokkal és az adatbázissal, és nem az alkalmazással kapcsolatban történik, beleértve a replikációt és az állandó tárhelyen való tárolást.
  • Javasolták az ACL második kiadását, amely lehetővé teszi az adatokhoz való hozzáférés kulcsok alapján történő szabályozását, és lehetővé teszi, hogy különböző szabályokat határozzon meg a parancsokhoz való hozzáféréshez azzal a lehetőséggel, hogy több szelektort (jogosultságkészletet) rendeljen minden felhasználóhoz. Minden kulcs azonosítható egy adott jogosultsággal, például korlátozhatja a hozzáférést a kulcsok bizonyos részhalmazának csak olvasására vagy írására.
  • A fürtben futó Publish-Subscribe üzenetelosztási paradigma particionált (shared) megvalósítása biztosított, amelyben egy üzenetet küldenek egy adott csomóponthoz, amelyhez üzenetcsatorna kapcsolódik, majd ezt az üzenetet átirányítja a többi csomóponthoz. a szilánkban. A kliensek üzeneteket fogadhatnak egy csatornára való előfizetéssel, mind a fő csomóponthoz, mind a szekció másodlagos csomópontjaihoz csatlakozva. A vezérlés az SSUBSCRIBE, SUNSUBSCRIBE és SPUBLISH parancsokkal történik.
  • Hozzáadott támogatás az alparancsok feldolgozásához a legtöbb környezetben.
  • Új parancsok hozzáadva:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • KÖZZÉTÉTEL, ELŐFIZETÉS, FELFIZETÉS, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • LEJÁRATI IDŐ, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • PARANCSDOKUMENTUMOK, PARANCSLISTA.
    • LATENCIA HISTOGRAM.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • ÜGYFÉL NINCS LAKOLÁS.
    • ACL DRYRUN.
  • Lehetőség van több konfiguráció egyidejű feldolgozására egy CONFIG SET/GET hívás során.
  • A „-json”, „-2”, „-scan”, „-functions-rdb” opciók hozzáadásra kerültek a redis-cli segédprogramhoz.
  • Alapértelmezés szerint az ügyfél hozzáférése a biztonságot befolyásoló beállításokhoz és parancsokhoz le van tiltva (például a DEBUG és a MODULE parancsok le vannak tiltva, a konfigurációk módosítása a PROTECTED_CONFIG jelzővel tilos). A redis-cli már nem ad ki érzékeny adatokat tartalmazó parancsokat az előzményfájlba.
  • Az optimalizálás nagy részét bevezették a teljesítmény növelése és a memóriafogyasztás csökkentése érdekében. Például a memóriafelhasználás jelentősen csökkent a fürt mód engedélyezése, a másolás-írás műveletek végrehajtásakor, valamint a hash-ek és a zset billentyűk használatakor. Továbbfejlesztett logika az adatok lemezre öblítéséhez (fsync hívás). Csökkentett a hálózati csomagok és a rendszerhívások száma, amikor válaszokat küld a kliensnek. A replikációs hatékonyság javult.
  • A Lua-parancsfájlokat futtató környezetben lévő CVE-2022-24735 biztonsági rést kijavították, amely lehetővé teszi saját Lua-kódjának helyettesítését, és annak végrehajtását egy másik felhasználó kontextusában, beleértve a magasabb jogosultságokkal rendelkező felhasználókat is.
  • Javítva a CVE-2022-24736 biztonsági rés, amely lehetővé teszi a redis-server folyamat összeomlását a NULL mutatóhivatkozás miatt. A támadást speciálisan tervezett Lua szkriptek betöltésével hajtják végre.

Forrás: opennet.ru

Hozzászólás