ืžื”ื“ื•ืจืช Redis 7.0

ืคื•ืจืกื ืฉื—ืจื•ืจื• ืฉืœ Redis 7.0 DBMS, ื”ืฉื™ื™ืš ืœืžื—ืœืงืช ืžืขืจื›ื•ืช NoSQL. Redis ืžืกืคืงืช ืคื•ื ืงืฆื™ื•ืช ืœืื—ืกื•ืŸ ื ืชื•ื ื™ ืžืคืชื—/ืขืจืš, ืžืฉื•ืคืจืช ืขืœ ื™ื“ื™ ืชืžื™ื›ื” ื‘ืคื•ืจืžื˜ื™ื ืžื•ื‘ื ื™ื ืฉืœ ื ืชื•ื ื™ื ื›ื’ื•ืŸ ืจืฉื™ืžื•ืช, hashes ื•ืกื˜ื™ื, ื›ืžื• ื’ื ื”ื™ื›ื•ืœืช ืœื”ืคืขื™ืœ ืžื˜ืคืœื™ ืกืงืจื™ืคื˜ื™ื ื‘ืฆื“ ื”ืฉืจืช ื‘- Lua. ืงื•ื“ ื”ืคืจื•ื™ืงื˜ ืžืกื•ืคืง ืชื—ืช ืจื™ืฉื™ื•ืŸ BSD. ืžื•ื“ื•ืœื™ื ื ื•ืกืคื™ื ื”ืžืฆื™ืขื™ื ื™ื›ื•ืœื•ืช ืžืชืงื“ืžื•ืช ืœืžืฉืชืžืฉื™ื ืืจื’ื•ื ื™ื™ื, ื›ื’ื•ืŸ RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, ืกื•ืคืงื• ืชื—ืช ืจื™ืฉื™ื•ืŸ RSAL ืงื ื™ื™ื ื™ ืžืื– 2019. ืคืจื•ื™ืงื˜ GoodFORM, ืฉื ืžืฆื ืœืื—ืจื•ื ื” ื‘ืงื™ืคืื•ืŸ, ื ื™ืกื” ืœื”ืžืฉื™ืš ื‘ืคื™ืชื•ื— ืฉืœ ื’ืจืกืื•ืช ืคืชื•ื—ื•ืช ืฉืœ ืžื•ื“ื•ืœื™ื ืืœื” ืชื—ืช ืจื™ืฉื™ื•ืŸ AGPLv3.

ื‘ื ื™ื’ื•ื“ ืœืžืขืจื›ื•ืช ืื—ืกื•ืŸ ื‘ื–ื™ื›ืจื•ืŸ ื›ื’ื•ืŸ Memcached, Redis ืžื‘ื˜ื™ื—ื” ืฉื”ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ื‘ืื•ืคืŸ ืงื‘ื•ืข ื‘ื“ื™ืกืง ื•ืžื‘ื˜ื™ื—ื” ืฉืžืกื“ ื”ื ืชื•ื ื™ื ื™ื™ืฉืืจ ืฉืœื ื‘ืžืงืจื” ืฉืœ ืงืจื™ืกื”. ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื”ืคืจื•ื™ืงื˜ ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ BSD. ืกืคืจื™ื•ืช ืœืงื•ื— ื–ืžื™ื ื•ืช ืขื‘ื•ืจ ืจื•ื‘ ื”ืฉืคื•ืช ื”ืคื•ืคื•ืœืจื™ื•ืช, ื›ื•ืœืœ Perl, Python, PHP, Java, Ruby ื•-Tcl. Redis ืชื•ืžื›ืช ื‘ื˜ืจื ื–ืงืฆื™ื•ืช, ื”ืžืืคืฉืจื•ืช ืœืš ืœื‘ืฆืข ืงื‘ื•ืฆืช ืคืงื•ื“ื•ืช ื‘ืฉืœื‘ ืื—ื“, ืžื” ืฉืžื‘ื˜ื™ื— ืขืงื‘ื™ื•ืช ื•ืขืงื‘ื™ื•ืช (ืคืงื•ื“ื•ืช ืžื‘ืงืฉื•ืช ืื—ืจื•ืช ืื™ื ืŸ ื™ื›ื•ืœื•ืช ืœื”ืคืจื™ืข) ื‘ื‘ื™ืฆื•ืข ืกื˜ ื ืชื•ืŸ ืฉืœ ืคืงื•ื“ื•ืช, ื•ื‘ืžืงืจื” ืฉืœ ื‘ืขื™ื•ืช, ืžืืคืฉืจ ืœืš ืœื—ื–ื•ืจ ืื—ื•ืจื” ืฉื™ื ื•ื™ื™ื. ื›ืœ ื”ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ื‘ืžืœื•ืื• ื‘ื–ื™ื›ืจื•ืŸ RAM.

ืคืงื•ื“ื•ืช ื›ื’ื•ืŸ ื”ื’ื“ืœื”/ื”ืคื—ืชื”, ืจืฉื™ืžื” ืกื˜ื ื“ืจื˜ื™ืช ื•ืคืขื•ืœื•ืช ืกื˜ (ืื™ื—ื•ื“, ืฆื•ืžืช), ืฉื™ื ื•ื™ ืฉื ืžืคืชื—, ื‘ื—ื™ืจื•ืช ืžืจื•ื‘ื•ืช ื•ืคื•ื ืงืฆื™ื•ืช ืžื™ื•ืŸ ืžืกื•ืคืงื•ืช ืœื ื™ื”ื•ืœ ื ืชื•ื ื™ื. ืฉื ื™ ืžืฆื‘ื™ ืื—ืกื•ืŸ ื ืชืžื›ื™ื: ืกื ื›ืจื•ืŸ ืชืงื•ืคืชื™ ืฉืœ ื ืชื•ื ื™ื ืœื“ื™ืกืง ื•ืชื—ื–ื•ืงื” ืฉืœ ื™ื•ืžืŸ ืฉื™ื ื•ื™ื™ื ื‘ื“ื™ืกืง. ื‘ืžืงืจื” ื”ืฉื ื™, ื‘ื˜ื™ื—ื•ืช ืžืœืื” ืฉืœ ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ืžื•ื‘ื˜ื—ืช. ื ื™ืชืŸ ืœืืจื’ืŸ ืฉื›ืคื•ืœ ื ืชื•ื ื™ื ืžืืกื˜ืจ-slave ืœืžืกืคืจ ืฉืจืชื™ื, ื”ืžืชื‘ืฆืข ื‘ืžืฆื‘ ืœื ื—ื•ืกื. ื–ืžื™ืŸ ื’ื ืžืฆื‘ ื”ื•ื“ืขื•ืช "ืคืจืกื/ื”ื™ืจืฉื", ืฉื‘ื• ื ื•ืฆืจ ืขืจื•ืฅ, ืฉืžืžื ื• ื”ื•ื“ืขื•ืช ืžื•ืคืฆื•ืช ืœืœืงื•ื—ื•ืช ืœืคื™ ืžื ื•ื™.

ืฉื™ื ื•ื™ื™ื ืžืจื›ื–ื™ื™ื ื‘-Redis 7.0:

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืคื•ื ืงืฆื™ื•ืช ื‘ืฆื“ ื”ืฉืจืช. ื‘ื ื™ื’ื•ื“ ืœืกืงืจื™ืคื˜ื™ื ืฉื ืชืžื›ื• ื‘ืขื‘ืจ ื‘ืฉืคืช Lua, ื”ืคื•ื ืงืฆื™ื•ืช ืื™ื ืŸ ืงืฉื•ืจื•ืช ืœืืคืœื™ืงืฆื™ื” ื•ืžื›ื•ื•ื ื•ืช ืœื”ื˜ืžืขืช ืœื•ื’ื™ืงื” ื ื•ืกืคืช ื”ืžืจื—ื™ื‘ื” ืืช ื™ื›ื•ืœื•ืช ื”ืฉืจืช. ืคื•ื ืงืฆื™ื•ืช ืžืขื•ื‘ื“ื•ืช ื‘ืื•ืคืŸ ื‘ืœืชื™ ื ืคืจื“ ืขื ื”ื ืชื•ื ื™ื ื•ื‘ื™ื—ืก ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื•ืœื ืœืืคืœื™ืงืฆื™ื”, ื›ื•ืœืœ ืฉื›ืคื•ืœ ื•ืื—ืกื ื” ื‘ืื—ืกื•ืŸ ืžืชืžืฉืš.
  • ื”ื•ืฆืขื” ืžื”ื“ื•ืจื” ืฉื ื™ื™ื” ืฉืœ ื”-ACL, ื”ืžืืคืฉืจืช ืœืฉืœื•ื˜ ื‘ื’ื™ืฉื” ืœื ืชื•ื ื™ื ืขืœ ืกืžืš ืžืคืชื—ื•ืช ื•ืžืืคืฉืจืช ืœื”ื’ื“ื™ืจ ืกื˜ื™ื ืฉื•ื ื™ื ืฉืœ ื›ืœืœื™ื ืœื’ื™ืฉื” ืœืคืงื•ื“ื•ืช ืขื ื™ื›ื•ืœืช ืœืื’ื“ ืžืกืคืจ ืกืœืงื˜ื•ืจื™ื (ืกื˜ื™ื ืฉืœ ื”ืจืฉืื•ืช) ืœื›ืœ ืžืฉืชืžืฉ. ื ื™ืชืŸ ืœื–ื”ื•ืช ื›ืœ ืžืคืชื— ืขื ืกืžื›ื•ืช ืžืกื•ื™ืžืช, ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ื’ื‘ื™ืœ ืืช ื”ื’ื™ืฉื” ืœืงืจื™ืื” ืื• ื›ืชื™ื‘ื” ืฉืœ ืชืช-ืงื‘ื•ืฆื” ืžืกื•ื™ืžืช ืฉืœ ืžืคืชื—ื•ืช ื‘ืœื‘ื“.
  • ืžืกื•ืคืง ื™ื™ืฉื•ื ืžืคื•ืฆืœ (ืžืคื•ืฆืœ) ืฉืœ ืคืจื“ื™ื’ืžืช ื”ืคืฆืช ื”ื•ื“ืขื•ืช Publish-Subscribe ื”ืคื•ืขืœืช ื‘ืืฉื›ื•ืœ, ืฉื‘ื• ื ืฉืœื—ืช ื”ื•ื“ืขื” ืœืฆื•ืžืช ืกืคืฆื™ืคื™ ืฉืืœื™ื• ืžื—ื•ื‘ืจ ืขืจื•ืฅ ื”ื•ื“ืขื•ืช, ื•ืœืื—ืจ ืžื›ืŸ ื”ื•ื“ืขื” ื–ื• ืžื•ืขื‘ืจืช ืœืฉืืจ ื”ืฆืžืชื™ื ื”ื›ืœื•ืœื™ื ื‘ืจืกื™ืก. ืœืงื•ื—ื•ืช ื™ื›ื•ืœื™ื ืœืงื‘ืœ ื”ื•ื“ืขื•ืช ืขืœ ื™ื“ื™ ื”ืจืฉืžื” ืœืขืจื•ืฅ, ื”ืŸ ืขืœ ื™ื“ื™ ื”ืชื—ื‘ืจื•ืช ืœืฆื•ืžืช ื”ืจืืฉื™ ื•ื”ืŸ ืœืฆืžืชื™ื ื”ืžืฉื ื™ื™ื ืฉืœ ื”ืžื“ื•ืจ. ื”ืฉืœื™ื˜ื” ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื•ืช SSUBSCRIBE, SUNSUBSCRIBE ื•-SPUBLISH.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืขื™ื‘ื•ื“ ืคืงื•ื“ื•ืช ืžืฉื ื” ื‘ืจื•ื‘ ื”ื”ืงืฉืจื™ื.
  • ื ื•ืกืคื• ืคืงื•ื“ื•ืช ื—ื“ืฉื•ืช:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • ืžืกืžื›ื™ ืคืงื•ื“ื•ืช, ืจืฉื™ืžืช ืคืงื•ื“ื•ืช.
    • ื”ื™ืกื˜ื•ื’ืจืžื” ืฉืœ ื—ื‘ื™ื•ืŸ.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • ืœืงื•ื— ืœืœื ืคื™ื ื•ื™.
    • ACL DRYRUN.
  • ื ื™ืชื ื” ื”ื™ื›ื•ืœืช ืœืขื‘ื“ ืžืกืคืจ ืชืฆื•ืจื•ืช ื‘ื•-ื–ืžื ื™ืช ื‘ืฉื™ื—ืช CONFIG SET/GET ืื—ืช.
  • ื”ืืคืฉืจื•ื™ื•ืช "-json", "-2", "-scan", "-functions-rdb" ื ื•ืกืคื• ืœื›ืœื™ ื”ืฉื™ืจื•ืช redis-cli.
  • ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื’ื™ืฉืช ืœืงื•ื— ืœื”ื’ื“ืจื•ืช ื•ืคืงื•ื“ื•ืช ื”ืžืฉืคื™ืขื•ืช ืขืœ ื”ืื‘ื˜ื—ื” ืžื•ืฉื‘ืชืช (ืœื“ื•ื’ืžื”, ื”ืคืงื•ื“ื•ืช DEBUG ื•-MODULE ืžื•ืฉื‘ืชื•ืช, ืฉื™ื ื•ื™ ืชืฆื•ืจื•ืช ืขื ื“ื’ืœ PROTECTED_CONFIG ืืกื•ืจ). Redis-cli ื›ื‘ืจ ืœื ืžื•ืฆื™ื ืคืงื•ื“ื•ืช ื”ืžื›ื™ืœื•ืช ื ืชื•ื ื™ื ืจื’ื™ืฉื™ื ืœืงื•ื‘ืฅ ื”ื™ืกื˜ื•ืจื™ื”.
  • ื—ืœืง ื’ื“ื•ืœ ืžื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื”ื•ืฆื’ื• ืฉืžื˜ืจืชืŸ ืœื”ื’ื‘ื™ืจ ืืช ื”ื‘ื™ืฆื•ืขื™ื ื•ืœื”ืคื—ื™ืช ืืช ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ. ืœื“ื•ื’ืžื”, ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ื”ื•ืคื—ืชื” ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ื‘ืขืช ื”ืคืขืœืช ืžืฆื‘ ืืฉื›ื•ืœื•ืช, ื‘ืขืช ื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ื”ืขืชืงื” ืขืœ ื›ืชื™ื‘ื”, ื•ื‘ืขืช ืขื‘ื•ื“ื” ืขื hashes ื•ืžืคืชื—ื•ืช zset. ืœื•ื’ื™ืงื” ืžืฉื•ืคืจืช ืœืฉื˜ื™ืคืช ื ืชื•ื ื™ื ืœื“ื™ืกืง (ืงืจื™ืืช fsync). ืžืกืคืจ ืžื ื•ืช ื”ืจืฉืช ื•ืฉื™ื—ื•ืช ื”ืžืขืจื›ืช ื‘ืขืช ืฉืœื™ื—ืช ืชื’ื•ื‘ื•ืช ืœืœืงื•ื— ื”ืฆื˜ืžืฆื. ื™ืขื™ืœื•ืช ื”ืฉื›ืคื•ืœ ืฉื•ืคืจื”.
  • ืชื•ืงื ื” ื”ืคื’ื™ืขื•ืช CVE-2022-24735 ื‘ืกื‘ื™ื‘ื” ืœื‘ื™ืฆื•ืข ืกืงืจื™ืคื˜ื™ื ืฉืœ Lua, ืžื” ืฉืžืืคืฉืจ ืœืš ืœื”ื—ืœื™ืฃ ืงื•ื“ Lua ืžืฉืœืš ื•ืœื”ืฉื™ื’ ืืช ื”ื‘ื™ืฆื•ืข ืฉืœื• ื‘ื”ืงืฉืจ ืฉืœ ืžืฉืชืžืฉ ืื—ืจ, ื›ื•ืœืœ ืื—ื“ ืขื ื”ืจืฉืื•ืช ื’ื‘ื•ื”ื•ืช ื™ื•ืชืจ.
  • ืคื’ื™ืขื•ืช ืชื•ืงื ื” CVE-2022-24736, ื”ืžืืคืฉืจืช ืœืชื”ืœื™ืš redis-ืฉืจืช ืœืงืจื•ืก ืขืงื‘ ื”ืคื ื™ื™ืช ืžืฆื‘ื™ืข NULL. ื”ืžืชืงืคื” ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ื˜ืขื™ื ืช ืกืงืจื™ืคื˜ื™ื ืฉืœ Lua ืฉืชื•ื›ื ื ื• ื‘ืžื™ื•ื—ื“.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”