Liberigo de Redis 7.0 DBMS

La eldono de la Redis 7.0 DBMS, kiu apartenas al la klaso de NoSQL-sistemoj, estis publikigita. Redis disponigas funkciojn por stokado de ŝlosilaj/valoraj datumoj, plifortigitaj per subteno por strukturitaj datumformatoj kiel ekzemple listoj, haŝiŝoj kaj aroj, same kiel la kapablo ruli servilflankajn manuskriptotraktalojn en Lua. La projektkodo estas liverita sub la permesilo BSD. Kromaj moduloj kiuj ofertas altnivelajn kapablojn por kompaniaj uzantoj, kiel ekzemple RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, estas liveritaj sub proprieta RSAL-licenco ekde 2019. La projekto GoodFORM, kiu lastatempe stagnis, provis daŭrigi la disvolviĝon de malfermaj versioj de ĉi tiuj moduloj sub la permesilo AGPLv3.

Male al enmemoraj stokadsistemoj kiel ekzemple Memcached, Redis certigas ke datumoj estas persiste stokitaj sur disko kaj certigas ke la datumbazo restas sendifekta en kazo de kraŝo. La fontkodo de la projekto estas distribuita sub la permesilo BSD. Klientbibliotekoj haveblas por plej popularaj lingvoj, inkluzive de Perl, Python, PHP, Java, Ruby kaj Tcl. Redis subtenas transakciojn, kiuj ebligas al vi ekzekuti grupon da komandoj en unu paŝo, certigante konsistencon kaj konsistencon (komandoj de aliaj petoj ne povas malhelpi) en la ekzekuto de difinita aro de komandoj, kaj en kazo de problemoj, ebligante vin retroiri. ŝanĝoj. Ĉiuj datumoj estas plene konservitaj en RAM.

Komandoj kiel pliigo/malkresko, norma listo kaj aro-operacioj (kuniĝo, intersekco), ŝlosila renomado, multoblaj elektoj kaj ordigaj funkcioj estas disponigitaj por datumadministrado. Du stokadreĝimoj estas subtenataj: perioda sinkronigo de datumoj al disko kaj prizorgado de ŝanĝprotokolo sur disko. En la dua kazo, kompleta sekureco de ĉiuj ŝanĝoj estas garantiita. Eblas organizi reproduktadon de datumoj de majstro-sklavo al pluraj serviloj, farita en ne-bloka reĝimo. Ankaŭ disponeblas mesaĝa reĝimo "publikigi/aboni", en kiu estas kreita kanalo, el kiu mesaĝoj estas distribuataj al klientoj per abono.

Ŝanĝoj en Redis 7.0:

  • Aldonita subteno por servilflankaj funkcioj. Male al antaŭe subtenataj skriptoj en la lingvo Lua, la funkcioj ne estas ligitaj al la aplikaĵo kaj celas efektivigi plian logikon, kiu vastigas la kapablojn de la servilo. Funkcioj estas prilaboritaj nedisigeble kun la datumoj kaj rilate al la datumbazo, kaj ne al la aplikaĵo, inkluzive de esti reproduktitaj kaj stokitaj en konstanta stokado.
  • Dua eldono de la ACL estis proponita, kiu ebligas al vi kontroli aliron al datumoj surbaze de ŝlosiloj kaj permesas vin difini malsamajn arojn de reguloj por aliri komandojn kun la kapablo ligi plurajn elektilojn (aroj de permesoj) al ĉiu uzanto. Ĉiu ŝlosilo povas esti identigita kun specifa aŭtoritato, ekzemple, vi povas limigi aliron al nur legi aŭ skribi certan subaron de ŝlosiloj.
  • Dispartita (dividita) efektivigo de la Publish-Subscribe mesaĝdistribua paradigmo kuranta en areto estas disponigita, en kiu mesaĝo estas sendita al specifa nodo al kiu mesaĝkanalo estas alkroĉita, post kiu tiu mesaĝo estas redirektita al la ceteraj nodoj inkluditaj. en la peceto. Klientoj povas ricevi mesaĝojn per abono al kanalo, kaj per konektado al la ĉefa nodo kaj al la malĉefaj nodoj de la sekcio. Kontrolo estas farita per la komandoj SSUBSCRIBE, SUNSUBSCRIBE kaj SPUBLISH.
  • Aldonita subteno por prilaborado de subkomandoj en la plej multaj kuntekstoj.
  • Novaj komandoj aldonitaj:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • PUBLIKA, SUNSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNKCIO *, FCALL, FCALL_RO.
    • COMMAND DOCS, KOMANDOLISTA.
    • LATENCHISTOGRAMO.
    • CLUSTER-PARTOJ, CLUSTER-LIGILOJ, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • KLIENTO NE-EVICT.
    • ACL DRYRUN.
  • La kapablo prilabori plurajn agordojn samtempe en unu CONFIG SET/GET alvoko estis disponigita.
  • Opcioj "-json", "-2", "-scan", "-functions-rdb" estis aldonitaj al la ilo redis-cli.
  • Defaŭlte, klienta aliro al agordoj kaj komandoj kiuj influas sekurecon estas malŝaltita (ekzemple, la DEBUG kaj MODULO-komandoj estas malŝaltitaj, ŝanĝi agordojn kun la flago PROTECTED_CONFIG estas malpermesita). Redis-cli ne plu eligas komandojn enhavantajn sentemajn datumojn al historia dosiero.
  • Granda parto de optimumigoj estis enkondukita celante pliigi rendimenton kaj redukti memorkonsumon. Ekzemple, memorkonsumo estis signife reduktita dum ebligado de cluster-reĝimo, dum farado de kopi-sur-skribaj operacioj, kaj kiam oni laboras kun hashoj kaj zset-ŝlosiloj. Plibonigita logiko por flui datumoj al disko (fsync-voko). La nombro da retpakoj kaj sistemvokoj dum sendado de respondoj al la kliento estis reduktita. Replika efikeco estis plibonigita.
  • La vundebleco CVE-2022-24735 en la medio por ekzekuti Lua-skriptojn estis riparita, kio ebligas al vi anstataŭigi vian propran Lua-kodon kaj atingi ĝian ekzekuton en la kunteksto de alia uzanto, inkluzive de unu kun pli altaj privilegioj.
  • Riparita vundebleco CVE-2022-24736, kiu ebligas al la redis-servila procezo kraŝi pro NULL-montrilo-malreferenco. La atako estas efektivigita per la ŝarĝo de speciale dizajnitaj Lua-skriptoj.

fonto: opennet.ru

Aldoni komenton