Redis 7.0 andmebaasi väljaanne

Ilmunud on Redis 7.0, mis kuulub NoSQL süsteemide klassi. Redis pakub võtmeväärtuse formaadis andmete salvestamise funktsioone, laiendades seda struktureeritud andmevormingute, nagu loendid, hash'id ja kogud, toe ning võimalusega käitada serveripoolseid skripte Lua keeles. Projekti kood on saadaval BSD litsentsi alusel. Täiendavad moodulid, mis pakuvad ettevõtte kasutajatele laienenud võimalusi, nagu RediSearch, RedisGraph, RedisJSON, RedisML ja RedisBloom, on alates 2019. aastast saadaval eralitsentsi RSAL alusel. Avatud andmemoodulite arenduse jätkamine AGPLv3 litsentsi all on olnud GoodFORM projekti katsetus, mis on viimastel aegadel stagnatsioonis.

Erinevalt mälus hoidmise süsteemidest, nagu Memcached, tagab Redis andmete püsiva salvestamise kettale ja garanteerib andmebaasi säilimise juhusliku sulgemise korral. Projekti allikakoodid levitatakse BSD litsentsi alusel. Klientteegid on saadaval enamikus populaarsetes programmeerimiskeeltes, sealhulgas Perl, Python, PHP, Java, Ruby ja Tcl. Redis toetab tehinguid, mis võimaldavad ühest tehingust täita rühma käske, tagades järjepidevuse ja konsistentsi (teiste päringute käsud ei saa sekkuda) antud käsudekompleksi täitmisel ning probleemide korral võimaldades muudatusi tagasi võtta. Kõik andmed salvestatakse täielikult mälus.

Andmete haldamiseks on saadaval sellised käsud nagu inkrement-/dekrement, tavalised toimingud loendite ja hulkadega (ühendamine, ristumine), võtmete ümbernimetamine, mitme valiku tegemine ja sorteerimisfunktsioonid. Toetatakse kahte salvestusrežiimi: andmete perioodne sünkroonimine diskiga ja muudatuste logimise pidamine. Teise juhtumi korral tagatakse kõigi muudatuste täielik säilitamine. On võimalik korraldada master-slave andmete replikatsiooni mitmesse serverite, mis toimub blokeerimata režiimis. Saadaval on ka sõnumite vahetamise režiim „publikatsioon/annetus“, kus luuakse kanal, mille teated levivad tellijatele.

Redis 7.0 olulised muudatused:

  • Toetatud on poole peal teostatavad funktsioonid сервера. Erinevalt varem toetatud Lua skriptidest ei ole funktsioonid rakendusele seotud ja suunatud täiendava loogika rakendamisele, mis laiendab serveri võimalusi. Funktsioonid töötlevad andmete kaudu ja on seotud andmebaasiga, mitte rakendusega, sealhulgas replitseeritakse ja salvestatakse püsivasse salvestusse.
  • Esitatud ACL teine ​​redaktsioon võimaldab hallata juurdepääsu andmetele põhineb võtmetel ning toetab erinevate juurdepääsureeglite kogude määratlemist käskudele, võimaldades siduda mitmeid valijaid (volituste kogusid) igale kasutajale. Iga võti võib olla seotud teatud volitustega, näiteks võib piirata juurdepääsu ainult lugemiseks või kirjutamiseks teatud võtmete alamhulga jaoks.
  • Esitatud klastris töötav sektioneeritud (sharded) teostus sõnumite levitamise avalduse (Publish-Subscribe) paradigma osas, kus sõnum saadetakse kindlale sõlmele, millega on seotud sõnumikanal, pärast mida suunatakse see sõnum edasi teistele sõlmedele, mis kuuluvad sektsiooni (shard). Klientidel on võimalus saada sõnumeid sõnumikanalile, kui nad ühendavad end kas põhijalale või sektsiooni teisesele sõlmele. Halduse teostamiseks kasutatakse käske SSUBSCRIBE, SUNSUBSCRIBE ja SPUBLISH.
  • Suurendatud toimetamise toimetamise toetust enamikus kontekstides.
  • Lisatud uued käsud:
    • 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.
  • On antud võimalus töödelda mitmeid konfigureerimist kohe CONFIG SET/GET kõnes.
  • Tööriista redis-cli on lisatud valikud «—json», «-2», «—scan», «—functions-rdb».
  • Vaikimisi on klientide juurdepääs seadetesse ja käskudesse, mis mõjutavad turvalisust, keelatud (näiteks on keelatud käsud DEBUG ja MODULE, samuti on keelatud konfigureerimist muuta PROTECTED_CONFIG lipuga). redis-cli-s on lõpetatud konfidentsiaalsete andmete sisaldava käsuhistoria faili väljund.
  • Tehtud on suur hulk optimeerimisi, mille eesmärk on suurendada jõudlust ja vähendada mälutarbimist. Näiteks on oluliselt vähendatud mälutarbimist, kui klastrirežiim on sisse lülitatud, teostatakse copy-on-write toimingute sooritamisel ja töötatakse häshtide ja zset võtmega. Parandatud on andmete kettale kirjutamise (fsync kutsete) loogikat. Vähendatud on võrgupakettide ja süsteemikõnede arvu, kui kliendile vastuseid saadetakse. Suurendatud on replikatsiooni efektiivsust.
  • Kinnitatud haav CVE-2022-24735 Lua-skriptide täitmise keskkonnas, mis võimaldab sisestada oma Lua-koodi ja saavutada selle täitmise teise kasutaja kontekstis, sealhulgas kõrgemate privileegidega kasutajate kontekstis.
  • Kinnitatud haav CVE-2022-24736, mis võimaldab redis-serveri protsessi kokkuvarisemist nullviitaja tõlgendamise tõttu. Rünnak toimub spetsiaalselt vormindatud Lua-skriptide laadimise kaudu.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS-kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS-kaitsega, VPS VDS serverid | ProHoster