Ukukhutshwa kweRedis 7.0 DBMS

Ukukhutshwa kweRedis 7.0 DBMS, eyeklasi yeenkqubo zeNoSQL, ishicilelwe. I-Redis inikezela ngemisebenzi yokugcina isitshixo / idatha yexabiso, iphuculwe ngenkxaso yeefomathi zedatha ezicwangcisiweyo ezifana noluhlu, i-hashes, kunye neeseti, kunye nokukwazi ukuqhuba abaphathi beskripthi se-server-side kwi-Lua. Ikhowudi yeprojekthi inikezelwe phantsi kwelayisensi ye-BSD. Iimodyuli ezongezelelweyo ezibonelela ngezakhono eziphezulu kubasebenzisi beshishini, njengeRediSearch, iRedisGraph, iRedisJSON, iRedisML, iRedisBloom, zinikezelwe phantsi kwelayisenisi yobunini be-RSAL ukusukela ngo-2019. Iprojekthi yeGoodFORM, esandula kuncipha, yazama ukuqhubeka nophuhliso lweenguqulelo ezivulekileyo zezi modyuli phantsi kwelayisensi ye-AGPLv3.

Ngokungafaniyo neenkqubo zokugcina kwimemori ezifana neMemcached, i-Redis iqinisekisa ukuba idatha igcinwa ngokuqhubekayo kwidiski kwaye iqinisekisa ukuba i-database ihlala injalo xa kwenzeka ingozi. Ikhowudi yomthombo weprojekthi ihanjiswa phantsi kwelayisensi ye-BSD. Iilayibrari zabaxumi ziyafumaneka kwezona lwimi zidumileyo, kubandakanya iPerl, iPython, i-PHP, iJava, iRuby, kunye neTcl. I-Redis ixhasa ukuthengiselana, ekuvumela ukuba wenze iqela lemiyalelo kwinqanaba elinye, ukuqinisekisa ukuhambelana kunye nokuhambelana (imiyalelo evela kwezinye izicelo ayikwazi ukuphazamisa) ekuphunyezweni kweseti yemiyalelo enikiweyo, kwaye kwimeko yeengxaki, ikuvumela ukuba ubuyele umva. utshintsho. Yonke idatha igcinwe ngokupheleleyo kwi-RAM.

Imiyalelo efana nokunyuswa / ukuncipha, uluhlu oluqhelekileyo kunye nokuseta imisebenzi (imanyano, ukuhlangana), ukutshintshwa kwegama eliphambili, ukhetho oluninzi, kunye nemisebenzi yokuhlela ibonelelwa kulawulo lwedatha. Iimowudi ezimbini zokugcina zixhaswa: ungqamaniso lwamaxesha ngamaxesha lwedatha kwidiski kunye nokugcinwa kwelog yotshintsho kwidiski. Kwimeko yesibini, ukhuseleko olupheleleyo lwalo lonke utshintsho luqinisekisiwe. Kuyenzeka ukuba uququzelele ukuphindaphindwa kwedatha ye-master-slave kwiiseva ezininzi, ezenziwa ngendlela engathinteliyo. Imo yokuthumela imiyalezo "yokushicilela / ukubhalisa" iyafumaneka, apho ishaneli yenziwe khona, imiyalezo ehanjiswa kubaxhasi ngokubhalisela.

Utshintsho oluphambili kwiRedis 7.0:

  • Inkxaso eyongeziweyo yemisebenzi yecala leseva. Ngokungafaniyo nezikripthi ezixhaswe ngaphambili ngolwimi lwesiLua, imisebenzi ayibophelwanga kwisicelo kwaye ijolise ekuphumezeni ingqiqo eyongezelelweyo eyandisa amandla omncedisi. Imisebenzi icutshungulwa ngokungafaniyo kunye nedatha kwaye ngokumalunga nesiseko sedatha, kwaye kungekhona kwisicelo, kubandakanywa ukuphindaphinda kunye nokugcinwa kwisitoreji esiqhubekayo.
  • Uhlelo lwesibini lwe-ACL lucetyiwe, olukuvumela ukuba ulawule ukufikelela kwidatha esekelwe kwizitshixo kwaye ikuvumela ukuba uchaze iiseti ezahlukeneyo zemithetho yokufikelela kwimiyalelo enobuchule bokubopha abakhethi abaninzi (iiseti zeemvume) kumsebenzisi ngamnye. Isitshixo ngasinye sinokuchongwa ngegunya elithile, umzekelo, unokunciphisa ukufikelela ekufundeni kuphela okanye ukubhala i-subset ethile yezitshixo.
  • Ukuphunyezwa okwahluliweyo (okwabiweyo) kokupapasha-Bhalisa iparadigm yokusasazwa komyalezo osebenza kwiqela inikwe, apho umyalezo uthunyelwa kwindawo ethile apho ijelo lomyalezo lincanyathiselwe, emva koko lo myalezo uqondiswe kwakhona kwiindawo eziseleyo ezibandakanyiweyo. eshadini. Abathengi banokufumana imiyalezo ngokubhalisela kwitshaneli, zombini ngokudibanisa kwi-node ephambili kunye nakwiindawo zesibini zecandelo. Ulawulo lwenziwa ngokusebenzisa i-SSUBSCRIBE, SUNSUBSCRIBE kunye ne-SPUBLISH imiyalelo.
  • Inkxaso eyongeziweyo yokusetyenzwa kwemiyalelo engaphantsi kwimixholo emininzi.
  • Imiyalelo emitsha yongeziwe:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHAARDCHANNELS/SHADNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • UMSEBENZI *, FCALL, FCALL_RO.
    • UMYALELO AMANQAKU, ULUHLU LOMYALELO.
    • I-LATENCY HISTORGRAM.
    • CLUSTER SHArds, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • UMTHENGI AKUKHO UKUKHIPHA.
    • I-ACL DRYRUN.
  • Ukukwazi ukwenza ulungelelwaniso oluninzi ngexesha elinye kwi-CONFIG SET/GET call inikezelwe.
  • Iinketho "-json", "-2", "-scan", "-functions-rdb" zongezwe kwi-redis-cli utility.
  • Ngokungagqibekanga, ukufikelela komxhasi kwiisetingi kunye nemiyalelo echaphazela ukhuseleko kuvaliwe (umzekelo, i DEBUG kunye neMODULE imiyalelo zivaliwe, ukutshintsha ubumbeko nge PROTECTED_CONFIG iflegi akuvumelekanga). redis-cli ayisekho mveliso imiyalelo equlathe iinkcukacha ezibuthathaka kwifayile yembali.
  • Inxalenye enkulu ye-optimizations iye yaziswa ngenjongo yokwandisa ukusebenza kunye nokunciphisa ukusetyenziswa kwememori. Ngokomzekelo, ukusetyenziswa kwememori kuncitshiswe kakhulu xa uvumela imodi ye-cluster, xa usenza imisebenzi yokukhuphela-ngokubhala, kwaye xa usebenza kunye ne-hashes kunye nezitshixo ze-zset. Ingqiqo ephuculweyo yokugungxula idatha kwidiski (fsync call). Inani leepakethi zenethiwekhi kunye neefowuni zesistim xa uthumela iimpendulo kumxhasi zincitshisiwe. Ubuchule bokuphindaphinda buphuculwe.
  • Umngcipheko we-CVE-2022-24735 kwimeko-bume yokuphumeza izikripthi ze-Lua zilungisiwe, ezikuvumela ukuba ubeke endaweni yakho ikhowudi ye-Lua kwaye ufezekise ukuphunyezwa kwayo kumxholo womnye umsebenzisi, kubandakanywa nomnye onamalungelo aphezulu.
  • Ubuthathaka obulungisiweyo CVE-2022-24736, evumela inkqubo ye-redis-server ukuba iphazamiseke ngenxa ye-NULL pointer dereference. Uhlaselo lwenziwa ngokulayishwa kwemibhalo yesiLua eyilwe ngokukodwa.

umthombo: opennet.ru

Yongeza izimvo