Skip to content

2.12.0

Latest
Compare
Choose a tag to compare
@git-hulk git-hulk released this 22 Apr 05:07
· 4 commits to 2.12 since this release

Highlights

This new release introduces significant features, improvements, and fixes. A critical fix is that the server will crash when passing a negative offset in SETRANGE command, please see #2783.

We introduce a few new commands and enhance some old commands, including:

  • HSETEXPIRE to allow setting a hash field with expiration time
  • KMETADATA to fetch the metadata of a key
  • POLLUPDATES supports using RESP output format
  • LASTSAVE supports iso8601 time format

Another highlight is that the community is working to support the TDIGEST data structure, but we don't bring it to this release for stable consideration.

New Features

  • feat(command): add support of RESP output format for the POLLUPDATES command by @git-hulk in #2745
  • feat(hash): add the support of HSETEXPIRE command (HSET + EXPIRE) by @ltagliamonte-dd in #2750
  • feat(server): add rocksdb_version, server_time_usec, executable and config_file to INFO by @PragmaTwice in #2781
  • feat(info): support to specify multiple sections for INFO by @PragmaTwice in #2772
  • feat(tdigest): add TDIGEST.CREATE and TDIGEST.INFO command by @LindaSummer in #2799
  • feat(tdigest): add tdigest algorithm and storage encoding implementations by @LindaSummer in #2741
  • feat(config): allow to configure the rocksdb's max compaction bytes by @git-hulk in #2802
  • feat(tdigest): add TDIGEST.ADD command by @wyxxxcat in #2803
  • feat(tdigest): add TDIGEST.MAX/MIN command by @wyxxxcat in #2811
  • feat(cmd): add iso8601 time format parameter to LASTSAVE command by @SharonIV0x86 in #2822
  • feat(tdigest): add support of TDIGEST.RESET command by @SharonIV0x86 in #2826
  • feat(cmd): add new command KMETADATA by @ltagliamonte-dd in #2827

Improvements

  • feat(script, function): remove global lock for EVAL, EVALSHA and FCALL by @PragmaTwice in #2731
  • feat(main): refine shutdown message to show signal name by @PragmaTwice in #2733
  • chore(command): add admin flag for permission-required commands by @PragmaTwice in #274
  • feat(info): move the last scan time as field to the info keyspace section by @git-hulk in #2775
  • refactor: adding stream elements to response by @torwig in #2836
  • chore(metadata): wrap RedisTypeNames as a method by @PragmaTwice in #2838
  • feat(conn): optimize RESP reply functions by @PragmaTwice in #2847
  • feat(tdigest): refactor buffer merge's min max updating logic by @LindaSummer in #2814

Bug Fixes

  • fix(script): disable exclusive commands to be executed in scripting by @PragmaTwice in #2732
  • chore(x.py): fix several typing issue in x.py by @PragmaTwice in #2739
  • feat(script): allow blocking commands in scripting by @PragmaTwice in #2740
  • chore(config): enable the RESP3 potocol by default by @git-hulk in #2746
  • fix(tests): flaky test case in BLMPOP command by @git-hulk in #2754
  • fix(tls): remove SSL_sendfile path to avoid errors in replication fullsync by @PragmaTwice in #2757
  • ci: fix build-push-action by supplying context argument by @PragmaTwice in #2780
  • fix(string): the server will crash when passing a negative offset in SETRANGE command by @git-hulk in #2783
  • fix(zset): The ZREMRANGEBYRANK command is missing LogData of the zset data type by @sryanyuan in #2808
  • fix: access nullptr issue in LoadClusterNodes by @RiversJin in #2820
  • fix(cluster): Resolve forbidden slot range cleanup bug during slot mgration by @RiversJin in #2829
  • fix(bloom): crash due to pinnable slice in bloom filter by @mapleFU in #2843
  • fix(bloom): try to fix GetSelf invalid access by @mapleFU in #2867

Misc

New Contributors

Full Changelog: v2.11.1...v2.12.0