Redis 7.0 ДҚБЖ шығарылымы

NoSQL жүйелерінің класына жататын Redis 7.0 ДҚБЖ шығарылымы жарияланды. Redis тізімдер, хэштер және жиындар сияқты құрылымдық деректер пішімдерін қолдау арқылы жақсартылған кілт/мән деректерін сақтауға арналған функцияларды, сондай-ақ Lua жүйесінде серверлік сценарий өңдегіштерін іске қосу мүмкіндігін қамтамасыз етеді. Жоба коды BSD лицензиясы бойынша жеткізіледі. RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom сияқты корпоративтік пайдаланушылар үшін кеңейтілген мүмкіндіктерді ұсынатын қосымша модульдер 2019 жылдан бастап меншікті RSAL лицензиясы бойынша жеткізіледі. Жақында тоқырауға ұшыраған GoodFORM жобасы AGPLv3 лицензиясы бойынша осы модульдердің ашық нұсқаларын әзірлеуді жалғастыруға тырысты.

Memcached сияқты жадтағы сақтау жүйелерінен айырмашылығы, Redis деректердің дискіде тұрақты сақталуын қамтамасыз етеді және бұзылған жағдайда дерекқордың өзгеріссіз қалуын қамтамасыз етеді. Жобаның бастапқы коды BSD лицензиясы бойынша таратылады. Клиенттік кітапханалар ең танымал тілдер үшін қол жетімді, соның ішінде Perl, Python, PHP, Java, Ruby және Tcl. Redis пәрмендер тобын бір қадамда орындауға мүмкіндік беретін транзакцияларды қолдайды, берілген пәрмендер жиынын орындау кезінде жүйелілік пен дәйектілікті қамтамасыз етеді (басқа сұраулардың пәрмендері кедергі келтіре алмайды) және проблемалар туындаған жағдайда кері қайтаруға мүмкіндік береді. өзгерістер. Барлық деректер жедел жадта толығымен кэштелген.

Мәліметтерді басқару үшін арттыру/азайту, стандартты тізім және жиын операциялары (біріктіру, қиылысу), перне атын өзгерту, бірнеше таңдау және сұрыптау функциялары сияқты командалар берілген. Екі сақтау режиміне қолдау көрсетіледі: деректерді дискіге мерзімді синхрондау және дискідегі өзгерістер журналына қызмет көрсету. Екінші жағдайда барлық өзгерістердің толық қауіпсіздігіне кепілдік беріледі. Блокталмайтын режимде жүзеге асырылатын бірнеше серверлерге негізгі-құлалық деректердің репликациясын ұйымдастыруға болады. «Жариялау/жазылу» хабар алмасу режимі де қол жетімді, онда арна жасалады, хабарламалар жазылу арқылы клиенттерге таратылады.

Redis 7.0 жүйесіндегі негізгі өзгерістер:

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

Ақпарат көзі: opennet.ru

пікір қалдыру