Redis 7.0 DBMS kaleratzea

NoSQL sistemen klasekoa den Redis 7.0 DBMSaren oharra argitaratu da. Redis-ek gako/balioen datuak gordetzeko funtzioak eskaintzen ditu, datu egituratuen formatuetarako laguntzarekin hobetuta, hala nola zerrendak, hashak eta multzoak, baita zerbitzariaren alboko script-en kudeatzaileak Luan exekutatzeko gaitasunarekin ere. Proiektuaren kodea BSD lizentziapean ematen da. Erabiltzaile korporatiboentzako gaitasun aurreratuak eskaintzen dituzten modulu gehigarriak, hala nola, RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, RSAL lizentzia jabedun batekin hornitzen dira 2019az geroztik. Duela gutxi geldirik egon den GoodFORM proiektua AGPLv3 lizentziapean modulu horien bertsio irekiak garatzen jarraitzen saiatu zen.

Memcached bezalako memoriako biltegiratze-sistemek ez bezala, Redis-ek datuak diskoan etengabe gordetzen direla ziurtatzen du eta datu-basea hutsegite bat gertatuz gero osorik mantentzen dela ziurtatzen du. Proiektuaren iturburu kodea BSD lizentziapean banatzen da. Bezero liburutegiak hizkuntza ezagunenetarako eskuragarri daude, Perl, Python, PHP, Java, Ruby eta Tcl barne. Redis-ek transakzioak onartzen ditu, komando talde bat urrats batean exekutatzeko aukera ematen dutenak, koherentzia eta koherentzia bermatuz (beste eskaera batzuen komandoek ezin dute oztopatu) komando multzo jakin baten exekuzioan, eta arazoak izanez gero, atzera egiteko aukera emanez. aldaketak. Datu guztiak RAM memorian daude guztiz cachean.

Gehitu/gutxitu, zerrenda estandarra eta multzo eragiketak (batasuna, elkargunea), teklaren izena aldatzea, aukeraketa anitzak eta ordenatzeko funtzioak eskaintzen dira datuak kudeatzeko. Bi biltegiratze modu onartzen dira: datuak diskoan aldizkako sinkronizazioa eta diskoan aldaketen erregistroa mantentzea. Bigarren kasuan, aldaketa guztien segurtasun osoa bermatzen da. Posible da maisu-esklaboen datuen erreplikazioa hainbat zerbitzaritan antolatzea, blokeorik gabeko moduan burututa. "Argitaratu/harpidetu" mezularitza modua ere eskuragarri dago, kanal bat sortzen den, eta mezuak bezeroei harpidetza bidez banatzen zaizkie.

Redis 7.0-n funtsezko aldaketak:

  • Zerbitzariaren aldeko funtzioetarako laguntza gehitu da. Aurretik Lua hizkuntzan onartzen ziren scriptek ez bezala, funtzioak ez daude aplikazioari lotuta eta zerbitzariaren gaitasunak zabaltzen dituen logika gehigarria ezartzera zuzenduta daude. Funtzioak ezinbestean prozesatzen dira datuekin eta datu-basearekin erlazionatuta, eta ez aplikazioarekin, erreplikatu eta biltegiratze iraunkorrean gordetzea barne.
  • ACLren bigarren edizio bat proposatu da, gakoetan oinarritutako datuetarako sarbidea kontrolatzeko aukera ematen duena eta komandoak atzitzeko arau multzo desberdinak definitzeko aukera ematen duena, erabiltzaile bakoitzari hainbat hautatzaile (baimen multzoak) lotzeko aukerarekin. Gako bakoitza autoritate zehatz batekin identifika daiteke, adibidez, gako azpimultzo jakin bat irakurtzeko edo idazteko sarbidea mugatu dezakezu.
  • Kluster batean exekutatzen den Publish-Subscribe mezu banaketa paradigmaren inplementazio partizionatua (partekatua) eskaintzen da, zeinetan mezu bat mezu-kanal bat erantsita dagoen nodo zehatz batera bidaltzen den, eta ondoren mezu hau barne dauden gainerako nodoetara birbideratzen da. puskan. Bezeroek mezuak jaso ditzakete kanal batera harpidetuta, bai nodo nagusira zein ataleko bigarren mailako nodoetara konektatuz. Kontrola SSUBSCRIBE, SUNSUBSCRIBE eta SPUBLISH komandoak erabiliz egiten da.
  • Testuinguru gehienetan azpikomandoak prozesatzeko laguntza gehitu da.
  • Komando berriak gehitu dira:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • PUBLIKATU, HARPIDETU, EGUZKI HARPIDETU, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • IRAUNKUNTZA, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNTZIOA *, FCALL, FCALL_RO.
    • KOMANDU DOK, KOMANDU ZERRENDA.
    • LATENTZIAREN HISTOGRAMA.
    • KLUSTER ZATIK, KLUSTER LOTURAK, KLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • BEZEROA EZ-KALERATU.
    • ACL DRYRUN.
  • CONFIG SET/GET dei batean hainbat konfigurazio aldi berean prozesatzeko gaitasuna eman da.
  • β€œ-json”, β€œ-2”, β€œ-scan”, β€œ-functions-rdb” aukerak gehitu dira redis-cli erabilgarritasunari.
  • Lehenespenez, segurtasunari eragiten dioten ezarpen eta komandoetarako bezeroen sarbidea desgaituta dago (adibidez, DEBUG eta MODULE komandoak desgaituta daude, PROTECTED_CONFIG banderarekin konfigurazioak aldatzea debekatuta dago). Redis-cli-k jada ez ditu datu sentikorrak dituzten komandoak ateratzen historia-fitxategi batera.
  • Optimizazioen zati handi bat sartu da errendimendua areagotzera eta memoria-kontsumoa murrizteko helburuarekin. Adibidez, memoria-kontsumoa nabarmen murriztu da cluster modua gaitzean, kopia-idazketa eragiketak egitean eta hash eta zset gakoekin lan egitean. Datuak diskora husteko logika hobetua (fsync deia). Bezeroari erantzunak bidaltzean sare-paketeen eta sistema-deien kopurua murriztu egin da. Erreplikazioaren eraginkortasuna hobetu da.
  • Lua script-ak exekutatzeko inguruneko CVE-2022-24735 ahultasuna konpondu da, eta horri esker, zure Lua kodea ordezkatu eta beste erabiltzaile baten testuinguruan exekutatu ahal izango duzu, pribilegio handiagoak dituena barne.
  • CVE-2022-24736 ahultasuna konpondu da, zeinak redis-zerbitzariaren prozesua huts egitea ahalbidetzen duen NULL erakuslearen deserreferentziagatik. Erasoa bereziki diseinatutako Lua scripten kargaren bidez egiten da.

Iturria: opennet.ru

Gehitu iruzkin berria