Vydanie Redis 7.0 DBMS

Bolo zverejnené vydanie Redis 7.0 DBMS, ktorý patrí do triedy systémov NoSQL. Redis poskytuje funkcie na ukladanie údajov kľúč/hodnota, rozšírené o podporu formátov štruktúrovaných údajov, ako sú zoznamy, hash a sady, ako aj možnosť spúšťať obslužné programy skriptov na strane servera v jazyku Lua. Kód projektu sa dodáva pod licenciou BSD. Ďalšie moduly, ktoré ponúkajú pokročilé možnosti pre podnikových používateľov, ako napríklad RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, sú od roku 2019 dodávané pod proprietárnou licenciou RSAL. Projekt GoodFORM, ktorý v poslednom čase stagnuje, sa pokúsil pokračovať vo vývoji otvorených verzií týchto modulov pod licenciou AGPLv3.

Na rozdiel od in-memory storage systémov, ako je Memcached, Redis zaisťuje, že dáta sú trvalo uložené na disku a zaisťuje, že databáza zostane nedotknutá v prípade zlyhania. Zdrojový kód projektu je šírený pod licenciou BSD. Klientske knižnice sú dostupné pre väčšinu populárnych jazykov vrátane Perl, Python, PHP, Java, Ruby a Tcl. Redis podporuje transakcie, ktoré vám umožňujú vykonať skupinu príkazov v jednom kroku, zaisťujú konzistentnosť a konzistenciu (príkazy z iných požiadaviek nemôžu zasahovať) pri vykonávaní danej sady príkazov a v prípade problémov umožňujú vrátiť späť zmeny. Všetky dáta sú plne uložené v pamäti RAM.

Príkazy na správu údajov zahŕňajú inkrementáciu/dekrementáciu, štandardné operácie so zoznamom a množinami (zjednotenie, prienik), premenovanie kľúčov, viacnásobný výber a funkcie triedenia. Podporované sú dva režimy ukladania: periodická synchronizácia údajov na disk a udržiavanie denníka zmien na disku. Druhý uvedený režim zaručuje úplné zachovanie všetkých zmien. Je tiež možná replikácia údajov typu master-slave medzi viacerými inštanciami. serverov, vykonávané v neblokujúcom režime. K dispozícii je aj režim publikovania/odoberania správ, ktorý vytvára kanál, z ktorého sa správy distribuujú klientom prostredníctvom predplatného.

Kľúčové zmeny v Redis 7.0:

  • Pridaná podpora pre funkcie vykonávané na strane serverNa rozdiel od predtým podporovaných Lua skriptov nie sú funkcie špecifické pre danú aplikáciu a sú navrhnuté tak, aby implementovali dodatočnú logiku, ktorá rozširuje možnosti servera. Funkcie sa spracovávajú bezproblémovo s dátami a sú viazané na databázu, nie na aplikáciu, a sú replikované a uložené v trvalom úložisku.
  • Bolo navrhnuté druhé vydanie ACL, ktoré umožňuje riadiť prístup k údajom na základe kľúčov a umožňuje definovať rôzne sady pravidiel pre prístup k príkazom s možnosťou naviazať niekoľko selektorov (súborov povolení) na každého používateľa. Každý kľúč možno identifikovať so špecifickým oprávnením, napríklad môžete obmedziť prístup len na čítanie alebo zápis určitej podmnožiny kľúčov.
  • Poskytuje sa delená (rozdelená) implementácia paradigmy distribúcie správ Publish-Subscribe, ktorá beží v klastri, v ktorej sa správa odošle konkrétnemu uzlu, ku ktorému je pripojený kanál správ, a potom sa táto správa presmeruje na zostávajúce zahrnuté uzly. v črepe. Klienti môžu prijímať správy prihlásením sa na odber kanála, a to pripojením k hlavnému uzlu aj k sekundárnym uzlom sekcie. Ovládanie sa vykonáva pomocou príkazov SSUBSCRIBE, SUNSUBSCRIBE a SPUBLISH.
  • Pridaná podpora pre spracovanie čiastkových príkazov vo väčšine kontextov.
  • Pridané nové príkazy:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • PUBLISH, SSUBSCRIBE, SUNSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • PRÍKAZOVÉ DOKUMENTY, ZOZNAM PRÍKAZOV.
    • HISTOGRAM LATENCIE.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • KLIENT BEZ VYSŤAHOVANIA.
    • ACL DRYRUN.
  • Bola poskytnutá možnosť spracovať viacero konfigurácií naraz v jednom hovore CONFIG SET/GET.
  • Do pomôcky redis-cli boli pridané možnosti „-json“, „-2“, „-scan“, „-functions-rdb“.
  • V predvolenom nastavení je klientsky prístup k nastaveniam a príkazom, ktoré ovplyvňujú bezpečnosť, zakázaný (napríklad príkazy DEBUG a MODULE sú zakázané, zmena konfigurácií s príznakom PROTECTED_CONFIG je zakázaná). Redis-cli už nevypisuje príkazy obsahujúce citlivé údaje do súboru histórie.
  • Bola predstavená veľká porcia optimalizácií zameraných na zvýšenie výkonu a zníženie spotreby pamäte. Napríklad spotreba pamäte sa výrazne znížila pri povolení režimu klastra, pri vykonávaní operácií kopírovania pri zápise a pri práci s kľúčmi hash a zset. Vylepšená logika pre vyprázdnenie údajov na disk (volanie fsync). Znížil sa počet sieťových paketov a systémových volaní pri odosielaní odpovedí klientovi. Účinnosť replikácie sa zlepšila.
  • Zraniteľnosť CVE-2022-24735 v prostredí na vykonávanie skriptov Lua bola opravená, čo vám umožňuje nahradiť vlastný kód Lua a dosiahnuť jeho spustenie v kontexte iného používateľa, vrátane používateľa s vyššími oprávneniami.
  • Opravená chyba zabezpečenia CVE-2022-24736, ktorá umožňuje zrútenie procesu redis-server v dôsledku dereferencie ukazovateľa NULL. Útok sa vykonáva prostredníctvom načítania špeciálne navrhnutých skriptov Lua.

Zdroj: opennet.ru

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