Hoʻokuʻu ʻia o Redis 7.0 DBMS

Ua paʻi ʻia ka hoʻokuʻu ʻana o ka Redis 7.0 DBMS, nona ka papa o nā ʻōnaehana NoSQL. Hāʻawi ʻo Redis i nā hana no ka mālama ʻana i nā ʻikepili kī/waiwai, i hoʻonui ʻia e ke kākoʻo ʻana i nā palapala ʻikepili i hoʻonohonoho ʻia e like me nā papa inoa, hashes, a me nā hoʻonohonoho, a me ka hiki ke holo i nā mea hoʻohana palapala ʻaoʻao kikowaena ma Lua. Hāʻawi ʻia ke code papahana ma lalo o ka laikini BSD. ʻO nā modula hou e hāʻawi ana i nā mana holomua no nā mea hoʻohana ʻoihana, e like me RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, ua hoʻolako ʻia ma lalo o kahi laikini RSAL proprietary mai 2019. Ua ho'āʻo ka papahana GoodFORM, ka mea i hala koke nei, e hoʻomau i ka hoʻomohala ʻana i nā mana wehe o kēia mau modula ma lalo o ka laikini AGPLv3.

ʻAʻole e like me nā ʻōnaehana mālama hoʻomanaʻo e like me Memcached, hōʻoia ʻo Redis e mālama mau ʻia ka ʻikepili ma ka disk a hōʻoia i ka paʻa ʻana o ka waihona i ka wā o kahi ulia. Hāʻawi ʻia ke kumu kumu o ka papahana ma lalo o ka laikini BSD. Loaʻa nā hale waihona puke no nā ʻōlelo kaulana loa, me Perl, Python, PHP, Java, Ruby, a me Tcl. Kākoʻo ʻo Redis i nā kālepa, e ʻae iā ʻoe e hoʻokō i kahi pūʻulu o nā kauoha i hoʻokahi ʻanuʻu, e hōʻoiaʻiʻo ana i ke kūpaʻa a me ke kūpaʻa (ʻaʻole hiki ke hoʻopilikia i nā kauoha mai nā noi ʻē aʻe) i ka hoʻokō ʻana i nā kauoha i hāʻawi ʻia, a inā pilikia, e ʻae iā ʻoe e ʻōwili i hope. loli. Hoʻopili piha ʻia nā ʻikepili āpau i RAM.

ʻO nā kauoha e like me ka hoʻonui / emi ʻana, ka papa inoa maʻamau a me nā hana hoʻonohonoho (union, intersection), hoʻololi inoa kī, nā koho he nui, a me nā hana hoʻokaʻawale i hāʻawi ʻia no ka hoʻokele data. Kākoʻo ʻia ʻelua mau ʻano mālama: ka hoʻonohonoho ʻana i ka ʻikepili i ka disk a me ka mālama ʻana i kahi log loli ma ka disk. I ka lua o ka hihia, palekana piha o nā hoʻololi a pau. Hiki ke hoʻonohonoho i ka hoʻopiʻi ʻikepili master-slave i kekahi mau kikowaena, i hana ʻia ma ke ʻano non-blocking. Loaʻa pū kekahi ʻano memo "paʻi / kākau inoa", kahi i hana ʻia ai kahi alahele, nā memo e hāʻawi ʻia i nā mea kūʻai aku ma ke kau inoa ʻana.

Nā hoʻololi koʻikoʻi ma Redis 7.0:

  • Kākoʻo hoʻohui ʻia no nā hana ʻaoʻao kikowaena. ʻAʻole like me nā palapala i kākoʻo mua ʻia ma ka ʻōlelo Lua, ʻaʻole pili nā hana i ka noi a ke manaʻo nei e hoʻokō i nā loiloi hou e hoʻonui ai i ka hiki o ke kikowaena. Hoʻopili ʻia nā hana me ka ʻikepili a pili i ka waihona, ʻaʻole i ka noi, me ka hoʻopili hou ʻana a mālama ʻia i loko o kahi mālama mau.
  • Ua manaʻo ʻia kahi paʻi ʻelua o ka ACL, kahi e hiki ai iā ʻoe ke hoʻomalu i ka ʻike i ka ʻikepili e pili ana i nā kī a hiki iā ʻoe ke wehewehe i nā ʻano lula like ʻole no ke komo ʻana i nā kauoha me ka hiki ke hoʻopaʻa i kekahi mau koho (sets of permits) i kēlā me kēia mea hoʻohana. Hiki ke ʻike ʻia kēlā me kēia kī me kahi mana kikoʻī, no ka laʻana, hiki iā ʻoe ke kaupalena i ke komo ʻana i ka heluhelu ʻana a i ʻole ke kākau ʻana i kekahi ʻāpana o nā kī.
  • Hāʻawi ʻia kahi hoʻokō ʻokoʻa (sharded) o ka Publish-Subscribe memo hoʻolaha paradigm e holo ana i loko o kahi puʻupuʻu, kahi i hoʻouna ʻia ai kahi leka i kahi node kikoʻī kahi i hoʻopili ʻia ai kahi kahawai memo, a laila hoʻohuli ʻia kēia memo i nā nodes i koe. i loko o ka ʻāpana. Hiki i nā mea kūʻai ke loaʻa nā memo ma ke kau inoa ʻana i kahi alahele, ma ka hoʻopili ʻana i ka node nui a me nā node lua o ka ʻāpana. Hoʻohana ʻia ka hoʻomalu me nā kauoha SSUBSCRIBE, SUNSUBSCRIBE a me SPULISH.
  • Hoʻohui ʻia ke kākoʻo no ka hoʻoponopono ʻana i nā subcommands i ka hapa nui o nā pōʻaiapili.
  • Hoʻohui ʻia nā kauoha hou:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • PEXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • HANA *, FCALL, FCALL_RO.
    • KAUKAU KAUKAU, PAPA KAUOHA.
    • HISTOGRAM LATENCY.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • KLIIKA NO-EVICT.
    • ACL DRYRUN.
  • Hāʻawi ʻia ka hiki ke hana i nā hoʻonohonoho he nui i ka manawa hoʻokahi i hoʻokahi kelepona CONFIG SET/GET.
  • Ua hoʻohui ʻia nā koho "-json", "-2", "-scan", "-functions-rdb" i ka pono redis-cli.
  • ʻO ka mea maʻamau, ua pio ke komo ʻana o ka mea kūʻai aku i nā hoʻonohonoho a me nā kauoha e pili ana i ka palekana (no ka laʻana, ua pio nā kauoha DEBUG a me MODULE, pāpā ʻia ka hoʻololi ʻana i nā hoʻonohonoho me ka hae PROTECT_CONFIG). ʻAʻole hoʻopuka hou ʻo Redis-cli i nā kauoha i loaʻa ka ʻikepili koʻikoʻi i kahi faila mōʻaukala.
  • Ua hoʻokomo ʻia kahi hapa nui o nā optimizations e manaʻo ana e hoʻonui i ka hana a hoʻemi i ka hoʻohana ʻana i ka hoʻomanaʻo. No ka laʻana, ua hoʻemi nui ʻia ka hoʻohana ʻana i ka hoʻomanaʻo i ka wā e ʻae ai i ke ʻano cluster, i ka wā e hana ana i nā hana kope-ma-kākau, a i ka wā e hana ai me nā hashes a me nā kī zset. Hoʻomaikaʻi i ka loiloi no ka holoi ʻana i ka ʻikepili i ka disk (kahea fsync). Ua hōʻemi ʻia ka helu o nā ʻeke pūnaewele a me nā kelepona ʻōnaehana i ka wā e hoʻouna ai i nā pane i ka mea kūʻai aku. Ua hoʻomaikaʻi ʻia ka maikaʻi o ka hana hou ʻana.
  • Ua hoʻopaʻa ʻia ka vulnerability CVE-2022-24735 i loko o ke kaiapuni no ka hoʻokō ʻana i nā palapala Lua, kahi e hiki ai iā ʻoe ke hoʻololi i kāu code Lua ponoʻī a hoʻokō i kāna hoʻokō ʻana i ka pōʻaiapili o kahi mea hoʻohana ʻē aʻe, me ka mea me nā pono kiʻekiʻe.
  • Hoʻopaʻa ʻia ka nāwaliwali CVE-2022-24736, e hiki ai i ke kaʻina hana redis-server ke hāʻule ma muli o ka NULL pointer dereference. Hana ʻia ka hoʻouka ʻana ma o ka hoʻouka ʻana i nā palapala Lua i hoʻolālā kūikawā ʻia.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka