Releases: redis/redis
8.0-M03
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
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
- newKEYSIZES
section includes key size distributions for basic data types - #13695
INFO
- newThreads
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
- newREDISMODULE_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 sideio-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
andPFMERGE
- 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
andHGETALL
- 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
andGEOFILTER
inFT.SEARCH
7.4.2
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 thelast_id
of the consume group - #13473 Streams:
XTRIM
does not update the maximal tombstone, leading to an incorrect lag - #13470
INFO
afterHDEL
show wrong number of hash keys with expiration - #13476 Fix a race condition in the
cache_memory
offunctionsLibCtx
- #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
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 thelast_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
Upgrade urgency SECURITY: See security fixes below.
Security fixes
- (CVE-2024-46981) Lua script commands may lead to remote code execution
8.0-M02
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 inSORT
command
Modules API
- #13526 Extend
RedisModule_OpenKey
to read also expired keys and subkeys
Performance and resource utilization improvements
- #11884 Optimize
ZADD
andZRANGE*
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 boostquicklistCompare
- #13412 Reduce redundant call of
prepareClientToWrite
when calladdReply*
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
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
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
8.0-M01
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
offunctionsLibCtx
- #13473 Fix incorrect lag due to trimming stream via
XTRIM
command - #13338 Fix incorrect lag field in
XINFO
when tombstone is after thelast_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
, andRM_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
, andLINDEX
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
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 tosubexpiry
Configuration parameters
- #13400 Add hide-user-data-from-log - allows hiding user data from the log file