Redis 7.0 DBMS-i väljalase

Avaldatud on NoSQL süsteemide klassi kuuluva Redis 7.0 DBMS väljalase. Redis pakub funktsioone võtme-/väärtusandmete salvestamiseks, mida täiustab struktureeritud andmevormingute (nt loendid, räsid ja komplektid) tugi, samuti võimalus käivitada Luas serveripoolsed skriptitöötlejad. Projekti kood tarnitakse BSD litsentsi alusel. Täiendavad moodulid, mis pakuvad ärikasutajatele täiustatud võimalusi, nagu RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, on alates 2019. aastast tarnitud patenteeritud RSAL-litsentsi alusel. Viimasel ajal soiku jäänud GoodFORM projekt üritas jätkata nende moodulite avatud versioonide arendamist AGPLv3 litsentsi all.

Erinevalt mälusisestest salvestussüsteemidest, nagu Memcached, tagab Redis andmete püsiva kettale salvestamise ja tagab, et andmebaas jääb krahhi korral puutumatuks. Projekti lähtekoodi levitatakse BSD litsentsi all. Klienditeegid on saadaval enamiku populaarsete keelte jaoks, sealhulgas Perl, Python, PHP, Java, Ruby ja Tcl. Redis toetab tehinguid, mis võimaldavad täita käskude rühma ühe sammuga, tagades järjepidevuse ja järjepidevuse (teistest päringutest pärinevad käsud ei saa segada) antud käskude komplekti täitmisel ning probleemide korral lubades tagasi pöörata. muudatusi. Kõik andmed on täielikult RAM-i vahemällu salvestatud.

Andmete haldamiseks on ette nähtud sellised käsud nagu suurendamine/vähendamine, standardsed loendi- ja komplektitoimingud (liit, ristmik), klahvi ümbernimetamine, mitu valikut ja sortimisfunktsioone. Toetatud on kaks salvestusrežiimi: andmete perioodiline sünkroonimine kettale ja muudatuste logi säilitamine kettal. Teisel juhul on tagatud kõigi muudatuste täielik ohutus. Võimalik on korraldada ülem-alluv andmete replikatsiooni mitmele serverile, mis viiakse läbi mitteblokeerivas režiimis. Saadaval on ka "avalda/telli" sõnumside režiim, mille käigus luuakse kanal, mille sõnumeid jagatakse klientidele tellimise teel.

Peamised muudatused versioonis Redis 7.0:

  • Lisatud tugi serveripoolsetele funktsioonidele. Erinevalt varem toetatud skriptidest Lua keeles ei ole funktsioonid rakendusega seotud ja on suunatud täiendava loogika juurutamisele, mis laiendab serveri võimalusi. Funktsioone töödeldakse lahutamatult andmetega ja seoses andmebaasiga, mitte rakendusega, sealhulgas paljundatakse ja säilitatakse püsimällu.
  • Välja on pakutud ACL-i teine ​​väljaanne, mis võimaldab juhtida juurdepääsu andmetele võtmete alusel ja võimaldab määratleda erinevaid reeglite komplekte käskudele juurdepääsuks koos võimalusega siduda iga kasutajaga mitu valijat (õiguste komplekti). Iga võtit saab tuvastada kindla volitusega, näiteks saate piirata juurdepääsu ainult teatud võtmete alamhulga lugemisele või kirjutamisele.
  • Pakutakse klastris töötava sõnumite avaldamise-tellimise paradigma partitsioonitud (killutatud) teostus, milles sõnum saadetakse konkreetsele sõlmele, millele on lisatud sõnumikanal, misjärel see sõnum suunatakse ümber ülejäänud kaasatud sõlmedesse. killustikus. Kliendid saavad sõnumeid vastu võtta kanali tellimisel nii peasõlme kui ka sektsiooni sekundaarsete sõlmedega ühenduse loomisel. Juhtimine toimub käskude SSUBSCRIBE, SUNSUBSCRIBE ja SPUBLISH abil.
  • Lisatud alamkäskude töötlemise tugi enamikus kontekstides.
  • Lisatud uued käsud:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • AVALDAMINE, TELLIMINE, PÄEVITAMINE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNKTSIOON *, FCALL, FCALL_RO.
    • KÄSLUDE DOKUMENTID, KÄSLULOEND.
    • LATENTSIAJA HISTOGRAMM.
    • KLASTRI SHARDS, KLASTRI LINGID, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • KLIENT EI KÕBSTAMISE.
    • ACL DRYRUN.
  • Pakutakse võimalust töödelda mitut konfiguratsiooni korraga ühe CONFIG SET/GET kõnega.
  • Redis-cli utiliidile on lisatud valikud “-json”, “-2”, “-scan”, “-functions-rdb”.
  • Vaikimisi on kliendi juurdepääs turvalisust mõjutavatele sätetele ja käskudele keelatud (näiteks käsud DEBUG ja MODULE on keelatud, konfiguratsioonide muutmine lipuga PROTECTED_CONFIG on keelatud). Redis-cli ei väljasta enam ajaloofaili tundlikke andmeid sisaldavaid käske.
  • Kasutusele on võetud suur osa optimeerimistest, mille eesmärk on suurendada jõudlust ja vähendada mälutarbimist. Näiteks on mälukasutus oluliselt vähenenud klastrirežiimi lubamisel, kopeerimise-kirjutamisel toimingute tegemisel ning räsi- ja zset-klahvidega töötamisel. Täiustatud loogika andmete kettale loputamiseks (fsynci kõne). Võrgupakettide ja süsteemikõnede arv kliendile vastuste saatmisel on vähenenud. Replikatsiooni efektiivsus on paranenud.
  • Lua skriptide käitamiskeskkonna haavatavus CVE-2022-24735 on parandatud, mis võimaldab teil asendada oma Lua koodi ja saavutada selle käivitamise teise kasutaja kontekstis, sealhulgas kõrgemate õigustega kasutaja kontekstis.
  • Parandatud haavatavus CVE-2022-24736, mis võimaldab redis-serveri protsessil NULL-i osuti viitamise tõttu krahhi. Rünnak viiakse läbi spetsiaalselt loodud Lua skriptide laadimise kaudu.

Allikas: opennet.ru

Lisa kommentaar