Redis 7.0 leidimas

Paskelbta Redis 7.0 DBVS, kuri priklauso NoSQL sistemų klasei, leidimas. „Redis“ teikia funkcijas, skirtas duomenų saugojimui rakto / vertės formatu, palaikydamas struktūrinių duomenų formatus, tokius kaip sąrašai, maišos ir rinkiniai, taip pat galimybę vykdyti serverio pusės Lua scenarijų tvarkykles. Projekto kodas pateikiamas pagal BSD licenciją. Papildiniai moduliai, siūlantys išplėstines funkcijas verslo vartotojams, pvz., RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, buvo pristatomi pagal patentuotą RSAL licenciją nuo 2019 m. Kuriant atviras šių modulių versijas pagal AGPLv3 licenciją, buvo bandoma tęsti pastaruoju metu sustingusį GoodFORM projektą.

Skirtingai nuo atminties saugojimo sistemų, tokių kaip „Memcached“, „Redis“ užtikrina nuolatinį duomenų saugojimą diske ir garantuoja duomenų bazės saugumą neįprasto išjungimo atveju. Projekto pirminiai tekstai platinami pagal BSD licenciją. Klientų bibliotekos yra prieinamos daugeliui populiariausių kalbų, įskaitant Perl, Python, PHP, Java, Ruby ir Tcl. „Redis“ palaiko operacijas, leidžiančias vienu žingsniu vykdyti komandų grupę, užtikrinant nuoseklumą ir nuoseklumą (kitų užklausų komandos negali susilpninti) tam tikro komandų rinkinio vykdymą, o iškilus problemoms – atšaukti pakeitimus. Visi duomenys yra visiškai talpinami RAM.

Duomenims manipuliuoti pateikiamos tokios komandos kaip padidinimas / mažinimas, standartinės operacijos su sąrašais ir rinkiniais (susijungimas, sankirta), raktų pervadinimas, keli pasirinkimai ir rūšiavimo funkcijos. Palaikomi du saugojimo režimai: periodinis duomenų sinchronizavimas į diską ir pakeitimų registravimas diske. Antruoju atveju garantuojamas visiškas visų pakeitimų saugumas. Galima organizuoti pagrindinio-pavaldžiojo duomenų replikaciją į kelis serverius, atliekamą neblokuojančiu režimu. Taip pat galimas paskelbimo/prenumeratos pranešimų siuntimo režimas, kai sukuriamas kanalas, iš kurio pranešimai platinami prenumeruojantiems klientams.

Pagrindiniai Redis 7.0 pakeitimai:

  • Pridėtas serverio funkcijų palaikymas. Skirtingai nuo anksčiau palaikomų Lua scenarijų, funkcijos nėra susietos su programa ir yra skirtos įdiegti papildomą logiką, kuri praplečia serverio galimybes. Funkcijos apdorojamos neatsiejamai su duomenimis ir susijusios su duomenų baze, o ne su programa, įskaitant atkartojimą ir saugojimą nuolatinėje saugykloje.
  • Siūlomas antrasis ACL leidimas, kuris leidžia valdyti prieigą prie duomenų pagal raktus ir leidžia apibrėžti skirtingus prieigos taisyklių rinkinius komandoms su galimybe susieti kelis parinkiklius (leidimų rinkinius) kiekvienam vartotojui. Kiekvienas raktas gali būti identifikuojamas su tam tikrais leidimais, pavyzdžiui, galite apriboti prieigą tik skaityti arba rašyti tam tikram raktų pogrupiui.
  • Pateikiamas suskirstytas „Publikuoti ir prenumeruoti“ pranešimų platinimo paradigmos įgyvendinimas, veikiantis klasteryje, kuriame pranešimas siunčiamas į konkretų mazgą, su kuriuo susietas pranešimų kanalas, o po to šis pranešimas nukreipiamas į likusius mazgus, įtrauktus į skeveldra. Klientai pranešimus gali gauti užsiprenumeravę kanalą, tiek prisijungę prie pirminio mazgo, tiek prie antrinių skyriaus mazgų. Valdymas atliekamas naudojant SSUBSCRIBE, SUNSUBSCRIBE ir SPUBLISH komandas.
  • Pridėtas subkomandų apdorojimo palaikymas daugelyje kontekstų.
  • Pridėtos naujos komandos:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SKELBTI, PRENUMERUOTI, SUN SUBSCRIBE, PUBSUB SHARDCHANNELS / SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • KOMANDŲ DOKUMENTAI, KOMANDŲ SĄRAŠAS.
    • LATENCIJOS HISTOGRAMA.
    • KLASTERIŲ SKELDĖS, KLASTERIŲ NUORODOS, KLASTERIŲ DELSLOTSRANGE, KLASTERIŲ ADDSLOTSRANGE.
    • KLIENTAS NĖRA IŠVEDIMO.
    • ACL DRYRUN.
  • Suteikiama galimybė vienu CONFIG SET/GET skambučiu apdoroti kelias konfigūracijas vienu metu.
  • Prie „redis-cli“ įrankio pridėtos parinktys „--json“, „-2“, „--scan“, „--functions-rdb“.
  • Pagal numatytuosius nustatymus kliento prieiga prie nustatymų ir komandų, turinčių įtakos saugumui, yra išjungta (pavyzdžiui, komandos DEBUG ir MODULE yra išjungtos, konfigūracijas keisti su PROTECTED_CONFIG vėliava draudžiama). Redis-cli nustojo išvesti komandas, kuriose yra slaptų duomenų į istorijos failą.
  • Atliko didelę optimizavimo dalį, kuria siekiama pagerinti našumą ir sumažinti atminties suvartojimą. Pavyzdžiui, atminties sąnaudos žymiai sumažėjo, kai įjungtas klasterio režimas, atliekant kopijavimo ir rašymo operacijas bei dirbant su maišos ir zset klavišais. Patobulinta duomenų į diską plovimo logika (fsync skambutis). Sumažintas tinklo paketų ir sistemos skambučių skaičius siunčiant atsakymus klientui. Pagerintas replikacijos efektyvumas.
  • Pažeidžiamumas CVE-2022-24735 Lua scenarijų vykdymo aplinkoje buvo ištaisytas, leidžiantis pakeisti savo Lua kodą ir jį vykdyti kito vartotojo kontekste, įskaitant tuos, kurie turi aukštesnes teises.
  • Ištaisytas pažeidžiamumas CVE-2022-24736, dėl kurio gali sugesti serverio pakartotinis procesas dėl nulinės rodyklės nuorodos. Ataka vykdoma įkeliant specialiai sukurtus Lua scenarijus.

Šaltinis: opennet.ru

Добавить комментарий