Redis 7.0 vrystelling

Die vrystelling van die Redis 7.0 DBMS, wat aan die klas van NoSQL-stelsels behoort, is gepubliseer. Redis bied funksies vir die stoor van sleutel-/waardedata, verbeter deur ondersteuning vir gestruktureerde dataformate soos lyste, hashes en stelle, sowel as die vermoë om bedienerkant-skrifhanteerders in Lua te laat loop. Die projekkode word onder die BSD-lisensie verskaf. Bykomende modules wat gevorderde vermoëns vir korporatiewe gebruikers bied, soos RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, word sedert 2019 onder 'n eie RSAL-lisensie verskaf. Die GoodFORM-projek, wat onlangs stagneer het, het probeer om die ontwikkeling van oop weergawes van hierdie modules onder die AGPLv3-lisensie voort te sit.

Anders as in-geheue-bergingstelsels soos Memcached, verseker Redis dat data aanhoudend op skyf gestoor word en verseker dat die databasis ongeskonde bly in die geval van 'n ongeluk. Die bronkode van die projek word onder die BSD-lisensie versprei. Kliëntbiblioteke is beskikbaar vir die meeste gewilde tale, insluitend Perl, Python, PHP, Java, Ruby en Tcl. Redis ondersteun transaksies, wat jou toelaat om 'n groep opdragte in een stap uit te voer, wat konsekwentheid en konsekwentheid verseker (opdragte van ander versoeke kan nie inmeng nie) in die uitvoering van 'n gegewe stel opdragte, en in die geval van probleme, sodat jy kan terugrol veranderinge. Alle data is volledig in die RAM gekas.

Opdragte soos inkrement/afname, standaardlys- en stelbewerkings (unie, kruising), sleutelhernoeming, veelvuldige keuses en sorteerfunksies word vir databestuur verskaf. Twee stoormodusse word ondersteun: periodieke sinchronisasie van data na skyf en instandhouding van 'n veranderingslogboek op skyf. In die tweede geval word volledige veiligheid van alle veranderinge gewaarborg. Dit is moontlik om meester-slaaf-datareplikasie na verskeie bedieners te organiseer, uitgevoer in 'n nie-blokkerende modus. 'n "Publiseer/teken in"-boodskapmodus is ook beskikbaar, waarin 'n kanaal geskep word, waarvandaan boodskappe per intekening aan kliënte versprei word.

Sleutelveranderinge in Redis 7.0:

  • Bygevoeg ondersteuning vir bediener-kant funksies. Anders as voorheen ondersteunde skrifte in die Lua-taal, is die funksies nie gekoppel aan die toepassing nie en is daarop gemik om bykomende logika te implementeer wat die vermoëns van die bediener uitbrei. Funksies word onlosmaaklik met die data en in verhouding tot die databasis verwerk, en nie tot die toepassing nie, insluitend om gerepliseer en in aanhoudende berging gestoor te word.
  • 'n Tweede uitgawe van die ACL is voorgestel, wat jou toelaat om toegang tot data te beheer wat op sleutels gebaseer is en jou toelaat om verskillende stelle reëls te definieer vir toegang tot opdragte met die vermoë om verskeie kiesers (stelle toestemmings) aan elke gebruiker te bind. Elke sleutel kan geïdentifiseer word met 'n spesifieke gesag, byvoorbeeld, jy kan toegang beperk tot slegs die lees of skryf van 'n sekere subset van sleutels.
  • 'n Gepartitioneerde (geskeurde) implementering van die Publiseer-Teken in-boodskapverspreidingsparadigma wat in 'n groepering loop, word verskaf, waarin 'n boodskap gestuur word na 'n spesifieke nodus waaraan 'n boodskapkanaal geheg is, waarna hierdie boodskap herlei word na die oorblywende nodusse wat ingesluit is. in die skerf. Kliënte kan boodskappe ontvang deur op 'n kanaal in te teken, beide deur aan die hoofnodus en aan die sekondêre nodusse van die afdeling te koppel. Beheer word uitgevoer met behulp van die SSUBSCRIBE, SUNSUBSCRIBE en SPUBLISH opdragte.
  • Bygevoeg ondersteuning vir die verwerking van subopdragte in die meeste kontekste.
  • Nuwe opdragte bygevoeg:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERKAART, ZINTERKAART.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARD CANALE/SHARDNUMSUB.
    • VERVALTYD, VERVALTYD.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNKSIE *, FCALL, FCALL_RO.
    • OPDRAG DOKUMENTE, OPDRAG LYS.
    • LATENCY HISTOGRAM.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • KLIËNT GEEN-UITSETTING.
    • ACL DRYRUN.
  • Die vermoë om veelvuldige konfigurasies gelyktydig in een CONFIG SET/GET-oproep te verwerk, is voorsien.
  • Opsies “-json”, “-2”, “-scan”, “-functions-rdb” is by die redis-cli-hulpprogram gevoeg.
  • By verstek is kliënttoegang tot instellings en opdragte wat sekuriteit beïnvloed gedeaktiveer (byvoorbeeld, die DEBUG- en MODULE-opdragte is gedeaktiveer, die verandering van konfigurasies met die PROTECTED_CONFIG-vlag word verbied). Redis-cli voer nie meer opdragte uit wat sensitiewe data bevat na 'n geskiedenislêer nie.
  • 'n Groot gedeelte van optimalisering is ingestel wat daarop gemik is om werkverrigting te verhoog en geheueverbruik te verminder. Geheueverbruik is byvoorbeeld aansienlik verminder wanneer groepmodus geaktiveer word, wanneer kopieer-op-skryf-bewerkings uitgevoer word en wanneer met hashes en zset-sleutels gewerk word. Verbeterde logika om data na skyf te spoel (fsync-oproep). Die aantal netwerkpakkies en stelseloproepe wanneer antwoorde aan die kliënt gestuur word, is verminder. Replikasiedoeltreffendheid is verbeter.
  • Die kwesbaarheid CVE-2022-24735 in die omgewing vir die uitvoering van Lua-skrifte is reggestel, wat jou toelaat om jou eie Lua-kode te vervang en die uitvoering daarvan in die konteks van 'n ander gebruiker te bereik, insluitend een met hoër voorregte.
  • Vaste kwesbaarheid CVE-2022-24736, wat toelaat dat die herdis-bediener-proses ineenstort as gevolg van NULL-wyserverwysing. Die aanval word uitgevoer deur die laai van spesiaal ontwerpte Lua-skrifte.

Bron: opennet.ru

Voeg 'n opmerking