Redis 7.0 DBMS чыгаруу

NoSQL системаларынын классына кирген Redis 7.0 DBMS релиз жарыяланды. Redis тизмелер, хэштер жана топтомдор сыяктуу структураланган маалымат форматтарын колдоо менен өркүндөтүлгөн ачкыч/маанилик маалыматтарды сактоо функцияларын, ошондой эле Луада сервердик скрипт иштеткичтерин иштетүү мүмкүнчүлүгүн камсыз кылат. Долбоордун коду BSD лицензиясы боюнча берилет. Корпоративдик колдонуучулар үчүн RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom сыяктуу өркүндөтүлгөн мүмкүнчүлүктөрдү сунуш кылган кошумча модулдар 2019-жылдан бери менчик RSAL лицензиясы боюнча берилип келет. Жакында токтоп калган GoodFORM долбоору AGPLv3 лицензиясынын алкагында бул модулдардын ачык версияларын иштеп чыгууну улантууга аракет кылды.

Memcached сыяктуу эс тутумдагы сактоо тутумдарынан айырмаланып, Redis маалыматтардын дискте туруктуу сакталышын камсыздайт жана бузулган учурда маалымат базасы бузулбай калышын камсыздайт. Долбоордун баштапкы коду BSD лицензиясы боюнча таратылат. Кардар китепканалары эң популярдуу тилдер үчүн жеткиликтүү, анын ичинде Perl, Python, PHP, Java, Ruby жана Tcl. Redis транзакцияларды колдойт, алар бир кадамда буйруктардын тобун аткарууга мүмкүндүк берет, берилген буйруктар топтомун аткарууда ырааттуулукту жана ырааттуулукту (башка суроо-талаптардан келген буйруктар тоскоол боло албайт) камсыз кылат жана көйгөйлөр пайда болгон учурда артка кайтууга мүмкүндүк берет. өзгөрүүлөр. Бардык маалыматтар RAMда толугу менен кэштелген.

Маалыматтарды башкаруу үчүн көбөйтүү/азайтуу, стандарттык тизме жана топтом операциялары (биримдик, кесилиш), ачкычтын атын өзгөртүү, бир нече тандоо жана сорттоо функциялары сыяктуу буйруктар берилген. Эки сактоо режими колдоого алынат: маалыматтарды дискке мезгил-мезгили менен синхрондоштуруу жана дискте өзгөртүү журналын сактоо. Экинчи учурда, бардык өзгөрүүлөрдүн толук коопсуздугу кепилденет. Блоксуз режимде ишке ашырылган бир нече серверлерге мастер-кул маалыматтарын репликациялоону уюштурууга болот. “Жарыялоо/жазылуу” билдирүү режими да бар, анда канал түзүлөт, анын билдирүүлөрү жазылуу аркылуу кардарларга таратылат.

Redis 7.0 негизги өзгөрүүлөр:

  • Сервер тараптагы функциялар үчүн кошумча колдоо. Луа тилиндеги мурда колдоого алынган скрипттерден айырмаланып, функциялар тиркеме менен байланышкан эмес жана сервердин мүмкүнчүлүктөрүн кеңейтүүчү кошумча логиканы ишке ашырууга багытталган. Функциялар тиркемеге эмес, маалыматтар менен жана маалыматтар базасына карата ажырагыс түрдө иштетилет, анын ичинде репликацияланат жана туруктуу сактагычта сакталат.
  • ACL экинчи басылышы сунушталды, ал ачкычтардын негизинде маалыматтарга жетүүнү башкарууга мүмкүндүк берет жана ар бир колдонуучуга бир нече селекторлорду (уруксаттардын топтомун) байлоо мүмкүнчүлүгү менен буйруктарга жетүү үчүн эрежелердин ар кандай топтомун аныктоого мүмкүндүк берет. Ар бир ачкычты белгилүү бир ыйгарым укуктар менен аныктоого болот, мисалы, сиз баскычтардын белгилүү бир бөлүгүн гана окуу же жазуу мүмкүнчүлүгүн чектей аласыз.
  • Кластерде иштеген Жарыялоо-Жазылуу билдирүү бөлүштүрүү парадигмасынын бөлүнгөн (бөлүнгөн) ишке ашырылышы камсыздалат, мында билдирүү билдирүү каналы тиркелген белгилүү бир түйүнгө жөнөтүлөт, андан кийин бул билдирүү камтылган калган түйүндөргө багытталат. сыныкта. Кардарлар негизги түйүнгө жана бөлүмдүн экинчи түйүндөрүнө туташуу аркылуу каналга жазылуу аркылуу билдирүүлөрдү ала алышат. Башкаруу SUBSCRIBE, SUNSCRIBE жана SCUBLISH командалары аркылуу ишке ашырылат.
  • Көпчүлүк контексттерде подкомандаларды иштетүү үчүн кошумча колдоо.
  • Жаңы буйруктар кошулду:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • ЖАРИЯЛОО, ЖАЗЫЛУУ, КҮНГӨ ЖАЗЫЛУУ, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • ФУНКЦИЯ *, FCALL, FCALL_RO.
    • БУЙРУК DOCS, БУЙРУК ТИЗМЕСИ.
    • КЕЧИРҮҮЛҮК ГИСТОГРАММА.
    • КЛАСТЕРДИН БӨЛҮКТӨРҮ, КЛАСТЕР ШИЛТЕМЕЛЕРИ, КЛАСТЕРДИН DELSLOTSRANGE, КЛАСТЕР ADDSLOTSRANGE.
    • КЛИЕНТИ КОЮУ ЖОК.
    • ACL DRYRUN.
  • Бир CONFIG SET/GET чалуусунда бир эле учурда бир нече конфигурацияларды иштетүү мүмкүнчүлүгү берилген.
  • "-json", "-2", "-scan", "-functions-rdb" параметрлери redis-cli утилитасына кошулду.
  • Демейки боюнча, кардар коопсуздукка таасир этүүчү орнотууларга жана буйруктарга кирүү мүмкүнчүлүгү өчүрүлгөн (мисалы, DEBUG жана MODULE буйруктары өчүрүлгөн, PROTECTED_CONFIG желеги менен конфигурацияларды өзгөртүүгө тыюу салынган). Redis-cli мындан ары тарых файлына сезимтал маалыматтарды камтыган буйруктарды чыгарбайт.
  • Оптималдаштыруунун чоң бөлүгү өндүрүмдүүлүктү жогорулатууга жана эстутум керектөөнү кыскартууга багытталган. Мисалы, кластердик режимди иштетүүдө, жазууга көчүрүү операцияларын аткарууда, хэштер жана zset ачкычтары менен иштөөдө эстутум керектөө кыйла кыскарган. Маалыматтарды дискке тазалоо үчүн жакшыртылган логика (fsync чалуу). Кардарга жооп жөнөтүүдө тармактык пакеттердин жана системалык чалуулардын саны кыскарды. Репликациялоонун эффективдүүлүгү жогорулады.
  • Lua скрипттерин аткаруу чөйрөсүндөгү CVE-2022-24735 алсыздыгы оңдолду, бул сизге өз Lua кодуңузду алмаштырууга жана анын башка колдонуучунун, анын ичинде артыкчылыктары жогору болгон колдонуучунун контекстинде аткарылышына жетишүүгө мүмкүндүк берет.
  • CVE-2022-24736 катаалдыгы оңдолду, ал редис-сервер процессинин NULL көрсөткүчүнөн улам бузулушуна мүмкүндүк берет. Кол салуу атайын иштелип чыккан Lua скрипттерин жүктөө аркылуу ишке ашырылат.

Source: opennet.ru

Комментарий кошуу