Skip to content

Releases: redis/redis

8.0-M03

23 Jan 15:30
d88611d
Compare
Choose a tag to compare
8.0-M03 Pre-release
Pre-release

This is the third Milestone of Redis Community Edition 8.0.

Milestones are non-feature-complete pre-releases. Pre-releases are not suitable for production use.
Once we reach feature-completeness we will release RC1.

Headlines:

8.0-M03 introduces an improved replication mechanism which is more performant and robust, a new I/O threading implementation which enables throughput increase on multi-core environments, and many additional performance improvements. Both Alpine and Debian Docker images are now available on Docker Hub. Snap and Homebrew distributions are available as well (see https://github.com/redis/homebrew-redis)

Security fixes

  • (CVE-2024-46981) Lua script may lead to remote code execution
  • (CVE-2024-51741) Denial-of-service due to malformed ACL selectors

New Features

  • #13695 New I/O threading implementation
  • #13732 New replication mechanism

Bug fixes

  • #13653 MODULE LOADEX - crash on nonexistent parameter name
  • #13661 FUNCTION FLUSH - memory leak when using jemalloc
  • #13626 Memory leak on failed RDB loading

Other general improvements

  • #13639 When hide-user-data-from-log is enabled - also print command tokens on crash
  • #13660 Add the Lua VM memory to memory overhead

New metrics

  • #13592 INFO - new KEYSIZES section includes key size distributions for basic data types
  • #13695 INFO - new Threads section includes I/O threading metrics

Modules API

  • #13666 RedisModule_ACLCheckKeyPrefixPermissions - check access permissions to any key matching a given prefix
  • #13676 RedisModule_HashFieldMinExpire - query the minimum expiration time over all the hash’s fields
  • #13676 RedisModule_HashGet - new REDISMODULE_HASH_EXPIRE_TIME flag - query the field expiration time
  • #13656 RedisModule_RegisterXXXConfig - allow registering unprefixed configuration parameters

Configuration parameters

  • replica-full-sync-buffer-limit - maximum size of accumulated replication stream data on the replica side
  • io-threads-do-reads is no longer effective. The new I/O threading implementation always use threads for both reads and writes

Performance and resource utilization improvements

  • #13638 Optimize CRC64 performance
  • #13521 Optimize commands with large argument count - reuse c->argv after command execution
  • #13558 Optimize PFCOUNT and PFMERGE - SIMD acceleration
  • #13644 Optimize GET on high pipeline use-cases
  • #13646 Optimize EXISTS - prefetching and branch prediction hints
  • #13652 Optimize LRANGE - improve listpack handling and decoding efficiency
  • #13655 Optimize HSET - avoid unnecessary hash field creation or deletion
  • #13721 Optimize LRANGE and HGETALL - refactor client write preparation and handling

Known bugs and limitations

  • Query Engine - config params access via CONFIG SET/GET are disabled
  • Missing support for FILTER and GEOFILTER in FT.SEARCH

7.4.2

06 Jan 14:19
Compare
Choose a tag to compare

Upgrade urgency SECURITY: See security fixes below.

Security fixes

  • (CVE-2024-46981) Lua script commands may lead to remote code execution
  • (CVE-2024-51741) Denial-of-service due to malformed ACL selectors

Bug fixes

  • #13627 Crash on module memory defragmentation
  • #13338 Streams: XINFO lag field is wrong when tombstone is after the last_id of the consume group
  • #13473 Streams: XTRIM does not update the maximal tombstone, leading to an incorrect lag
  • #13470 INFO after HDEL show wrong number of hash keys with expiration
  • #13476 Fix a race condition in the cache_memory of functionsLibCtx
  • #13626 Memory leak on failed RDB loading
  • #13539 Hash: fix key ref for a hash that no longer has fields with expiration on RENAME/MOVE/SWAPDB/RESTORE
  • #13443 Cluster: crash when loading cluster config
  • #13422 Cluster: CLUSTER SHARDS returns empty array
  • #13465 Cluster: incompatibility with older node versions
  • #13608 Cluster: SORT ... GET #: incorrect error message

7.2.7

06 Jan 14:16
Compare
Choose a tag to compare

Upgrade urgency SECURITY: See security fixes below.

Security fixes

  • (CVE-2024-46981) Lua script commands may lead to remote code execution
  • (CVE-2024-51741) Denial-of-service due to malformed ACL selectors

Bug fixes

  • #13380 Possible crash due to OOM panic on invalid command
  • #13338 Streams: XINFO lag field is wrong when tombstone is after the last_id of the consume group
  • #13473 Streams: XTRIM does not update the maximal tombstone, leading to an incorrect lag
  • #13311 Cluster: crash due to unblocking client during slot migration
  • #13443 Cluster: crash when loading cluster config
  • #13422 Cluster: CLUSTER SHARDS returns empty array
  • #13465 Cluster: incompatibility with older node versions

6.2.17

06 Jan 14:14
Compare
Choose a tag to compare

Upgrade urgency SECURITY: See security fixes below.

Security fixes

  • (CVE-2024-46981) Lua script commands may lead to remote code execution

8.0-M02

04 Nov 09:16
0a24bfe
Compare
Choose a tag to compare
8.0-M02 Pre-release
Pre-release

This is the second Milestone of Redis Community Edition 8.0.

Milestones are non-feature-complete pre-releases. Pre-releases are not suitable for production use.
Once we reach feature-completeness we will release RC1.

Headlines:

8.0-M02 introduces significant performance improvements. Both Alpine and Debian Docker images are now available on Docker Hub. Additional distributions will be introduced in upcoming pre-releases. In addition, Redis Query Engine now supports both horizontal and vertical scaling for search, query and vector workloads.

Supported upgrade paths (by replication or persistence) to 8.0-M02

  • From previous Redis versions, without modules

The following upgrade paths (by replication or persistence) to 8.0-M02 are not yet tested and will be introduced in upcoming pre-releases:

  • From previous Redis versions with modules (RediSearch, RedisJSON, RedisTimeSeries, RedisBloom)
  • From Redis Stack 7.2 or 7.4

Security fixes

  • (CVE-2024-31449) Lua library commands may lead to stack overflow and potential RCE.
  • (CVE-2024-31227) Potential Denial-of-service due to malformed ACL selectors.
  • (CVE-2024-31228) Potential Denial-of-service due to unbounded pattern matching.

Bug fixes

  • #13539 Hash: Fix key ref for a hash that no longer has fields with expiration on RENAME/MOVE/SWAPDB/RESTORE
  • #13512 Fix TOUCH command from a script in no-touch mode
  • #13468 Cluster: Fix cluster node config corruption caused by mixing shard-id and non-shard-id versions
  • #13608 Cluster: Fix GET # option in SORT command

Modules API

  • #13526 Extend RedisModule_OpenKey to read also expired keys and subkeys

Performance and resource utilization improvements

  • #11884 Optimize ZADD and ZRANGE* commands
  • #13530 Optimize SSCAN command in case of listpack or intset encoding
  • #13531 Optimize HSCAN/ZSCAN command in case of listpack encoding
  • #13520 Optimize commands that heavily rely on bulk/mbulk replies (example of LRANGE)
  • #13566 Optimize ZUNION[STORE] by avoiding redundant temporary dict usage
  • #13567 Optimize SUNION/SDIFF commands by avoiding redundant temporary dict usage
  • #11533 Avoid redundant lpGet to boost quicklistCompare
  • #13412 Reduce redundant call of prepareClientToWrite when call addReply* continuously

Notes

  • Additional distributions, upgrade paths, features, and improvements will be introduced in upcoming pre-releases.
  • With the GA release of 8.0 we will deprecate Redis Stack.

7.4.1

02 Oct 19:07
Compare
Choose a tag to compare

Upgrade urgency SECURITY: See security fixes below.

Security fixes

  • (CVE-2024-31449) Lua library commands may lead to stack overflow and potential RCE
  • (CVE-2024-31227) Potential Denial-of-service due to malformed ACL selectors
  • (CVE-2024-31228) Potential Denial-of-service due to unbounded pattern matching

7.2.6

02 Oct 19:14
Compare
Choose a tag to compare

Upgrade urgency SECURITY: See security fixes below.

Security fixes

  • (CVE-2024-31449) Lua library commands may lead to stack overflow and potential RCE
  • (CVE-2024-31227) Potential Denial-of-service due to malformed ACL selectors
  • (CVE-2024-31228) Potential Denial-of-service due to unbounded pattern matching

Bug fixes

  • #13315 Fixed crashes in cluster mode

6.2.16

02 Oct 20:14
Compare
Choose a tag to compare

Upgrade urgency SECURITY: See security fixes below.

Security fixes

  • (CVE-2024-31449) Lua library commands may lead to stack overflow and potential RCE.
  • (CVE-2024-31228) Potential Denial-of-service due to unbounded pattern matching.

8.0-M01

12 Sep 10:11
5fe3e74
Compare
Choose a tag to compare
8.0-M01 Pre-release
Pre-release

This is the first Milestone of Redis Community Edition 8.0.

Milestones are non-feature-complete pre-releases. Pre-releases are not suitable for production use.
Once we reach feature-completeness we will release RC1.

Headlines:

Redis 8.0 introduces new data structures: JSON, time series, and 5 probabilistic data structures (previously available as separate Redis modules) and incorporates Redis scalable query engine (including vector search).

8.0-M01 is available as a Docker image and can be downloaded from Docker Hub. Additional distributions will be introduced in upcoming pre-releases.

Supported upgrade paths (by replication or persistence) to 8.0-M01

  • From previous Redis versions, without modules

The following upgrade paths (by replication or persistence) to 8.0-M01 are not yet tested and will be introduced in upcoming pre-releases:

  • From previous Redis versions with modules (RediSearch, RedisJSON, RedisTimeSeries, RedisBloom)
  • From Redis Stack 7.2 or 7.4

New Features in binary distributions

  • 7 new data structures: JSON, Time series, Bloom filter, Cuckoo filter, Count-min sketch, Top-k, t-digest
  • Redis scalable query engine (including vector search)

Potentially breaking changes

  • #12272 GETRANGE returns an empty bulk when the negative end index is out of range
  • #12395 Optimize SCAN command when matching data type

Bug fixes

  • #13510 Fix RM_RdbLoad to enable AOF after RDB loading is completed
  • #13489 ACL CAT - return module commands
  • #13476 Fix a race condition in the cache_memory of functionsLibCtx
  • #13473 Fix incorrect lag due to trimming stream via XTRIM command
  • #13338 Fix incorrect lag field in XINFO when tombstone is after the last_id of the consume group
  • #13470 On HDEL of last field - update the global hash field expiration data structure
  • #13465 Cluster: Pass extensions to node if extension processing is handled by it
  • #13443 Cluster: Ensure validity of myself when loading cluster config
  • #13422 Cluster: Fix CLUSTER SHARDS command returns empty array

Modules API

  • #13509 New API calls: RM_DefragAllocRaw, RM_DefragFreeRaw, and RM_RegisterDefragCallbacks - defrag API to allocate and free raw memory

Performance and resource utilization improvements

  • #13503 Avoid overhead of comparison function pointer calls in listpack lpFind
  • #13505 Optimize STRING datatype write commands
  • #13499 Optimize SMEMBERS command
  • #13494 Optimize GEO* commands reply
  • #13490 Optimize HELLO command
  • #13488 Optimize client query buffer
  • #12395 Optimize SCAN command when matching data type
  • #13529 Optimize LREM, LPOS, LINSERT, and LINDEX commands
  • #13516 Optimize LRANGE and other commands that perform several writes to client buffers per call
  • #13431 Avoid used_memory contention when updating from multiple threads

Other general improvements

  • #13495 Reply -LOADING on replica while flushing the db

CLI tools

  • #13411 redis-cli: Fix wrong dbnum showed after the client reconnected

Notes

  • No backward compatibility for replication or persistence.
  • Additional distributions, upgrade paths, features, and improvements will be introduced in upcoming pre-releases.
  • With the GA release of 8.0 we will deprecate Redis Stack.

7.4.0

29 Jul 05:37
Compare
Choose a tag to compare

This is the General Availability release of Redis Community Edition 7.4.

Changes to new 7.4 features (compared to 7.4 RC2)

  • #13391, #13438 Hash - expiration of individual fields: RDB file format changes
  • #13372 Hash - expiration of individual fields: rename and fix counting of expired_subkeys metric
  • #13372 Hash - expiration of individual fields: rename INFO keyspace field to subexpiry

Configuration parameters

  • #13400 Add hide-user-data-from-log - allows hiding user data from the log file

Bug fixes

  • #13407 Trigger Lua GC after SCRIPT LOAD
  • #13380 Fix possible crash due to OOM panic on invalid command
  • #13383 FUNCTION FLUSH - improve Lua GC behavior and fix thread race in ASYNC mode
  • #13408 HEXPIRE-like commands should emit HDEL keyspace notification if expire time is in the past