Skip to content

All-in-One Redis Changelog

@latest 8.2.0 GA

Introduction

Upgrade urgency levels

  • LOW: No need to upgrade unless there are new features you want to use.
  • MODERATE: Program an upgrade of the server, but it's not urgent.
  • HIGH: There is a critical bug that may affect a subset of users. Upgrade!
  • CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
  • SECURITY: There are security fixes in the release.

PRs repositories

Binary distributions

Redis 8.2 release notes

8.2 GA (v8.2.0)

@Released Mon 4 Aug 2025 15:00:00 IST

This is the General Availability release of Redis Open Source 8.2.

Major changes compared to 8.0

  • Streams - new commands: XDELEX and XACKDEL; extension to XADD and XTRIM
  • Bitmap - BITOP: new operators: DIFF, DIFF1, ANDOR, and ONE
  • Query Engine - new SVS-VAMANA vector index type which supports vector compression
  • More than 15 performance and resource utilization improvements
  • New metrics: per-slot usage metrics, key size distributions for basic data types, and more

Tested operating system

  • Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat)
  • Rocky Linux 8.10, 9.5
  • AlmaLinux 8.10, 9.5
  • Debian 12 (Bookworm)
  • macOS 13 (Ventura), 14 (Sonoma), 15 (Sequoia)

Security fixes (compared to 8.2-RC1)

  • (CVE-2025-32023) Fix out-of-bounds write in HyperLogLog commands
  • (CVE-2025-48367) Retry accepting other connections even if the accepted connection reports an error

New Features (compared to 8.2-RC1)

  • #14141 Keyspace notifications - new event types:
  • OVERWRITTEN - the value of a key is completely overwritten
  • TYPE_CHANGED - key type change

Bug fixes (compared to 8.2-RC1)

  • #14162 Crash when using evport with I/O threads
  • #14163 EVAL crash when error table is empty
  • #14144 Vector sets - RDB format is not compatible with big endian machines
  • #14165 Endless client blocking for blocking commands
  • #14164 Prevent CLIENT UNBLOCK from unblocking CLIENT PAUSE
  • #14216 TTL was not removed by the SET command
  • #14224 HINCRBYFLOAT removes field expiration on replica

Performance and resource utilization improvements (compared to 8.2-RC1)

  • #14200 Store iterators on stack instead of on heap.
  • #14144 Vector set - improve RDB loading / RESTORE speed by storing the worst link info.
  • #Q6430 More compression variants for the SVS-VAMANA vector index.
  • #Q6535 SHARD_K_RATIO parameter - favor network latency over accuracy for KNN vector query in a Redis cluster (unstable feature) (MOD-10359).

Modules API

  • #14051 RedisModule_Get*, RedisModule_Set* - allow modules to access Redis configurations
  • #14114 RM_UnsubscribeFromKeyspaceEvents - unregister a module from specific keyspace notifications

8.2-RC1 (v8.1.240)

@Committed Thu 3 Jul 2025 20:00:00 IST

This is the first Release Candidate of Redis Open Source 8.0.

Release Candidates are feature-complete pre-releases. Pre-releases are not suitable for production use.

Headlines

Redis 8.2 introduces major performance and memory footprint improvements, new commands, and command extensions.

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

Security fixes

  • (CVE-2025-27151) redis-check-aof may lead to stack overflow and potential RCE

New Features

  • #14130 Streams - new commands: XDELEX and XACKDEL; extension to XADD and XTRIM
  • #14039 New command: CLUSTER SLOT-STATS - get per-slot usage metrics such as key count, CPU time, and network I/O
  • #14122 VSIM - new IN operator for filtering expression
  • #Q6329, #Q6329 - Query Engine - new SVS-VAMANA vector index type which supports vector compression (optimized for Intel machines)

Bug fixes

  • #14143 Gracefully handle short read errors for hashes with TTL during full sync

Performance and resource utilization improvements

  • #14103 Optimize BITCOUNT by introducing prefetching
  • #14121 Optimize SCAN by performing expiration checks only on DBs with volatile keys
  • #14140 Optimize expiry check in scanCallback
  • #14131 Optimize LREM, LPOS, LINSERT, ZRANK, and more by caching string2ll results in quicklistCompare
  • #14088 Optimize COPY, RENAME, and RESTORE when TTL is used
  • #14074 Reduce the overhead associated with tracking malloc’s usable memory
  • #13900 Optimize the client’s cron to avoid blocking the main thread
  • #J1351 JSON - memory footprint improvement by inlining numbers (MOD-9511)

Metrics

  • #14067 INFO: used_memory_peak_time - time when used_memory_peak was hit
  • #13990 INFO:
  • master_current_sync_attempts - number of times the replica attempted to sync to a master since last disconnection
  • master_total_sync_attempts - number of times the replica attempted to sync to a master
  • master_link_up_since_seconds - number of seconds since the link has been up
  • total_disconnect_time_sec - total cumulative time we've been disconnected as a replica

8.2-M01 (v8.1.224)

@Released Thu 19 Jun 2024 10:00:00 IST

This is the first Milestone of Redis Open Source 8.2.

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.2-M01

Redis 8.2 introduces major performance and memory footprint improvements, and command extensions.

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

New Features 8.2-M01

  • #14065 VSIM: Add new WITHATTRIBS to return the JSON attribute associated with an element
  • #13898 BITOP: new operators: DIFF, DIFF1, ANDOR, and ONE (RED-143607)

Bug fixes (compared to 8.0.2)

  • #13984 Memory usage and overhead report not updated when emptying or releasing a dict
  • #14081 Cron-based timers run twice as fast when active defrag is enabled
  • #14085 A short read may lead to an exit() on a replica
  • #14092 db->expires is not defragmented

Performance and resource utilization improvements (compared to 8.0.2)

  • #13806 Keyspace - unify key and value
  • #13968 Offload memory release of argv and rewrite objects into I/O threads
  • #13969 Make I/O threads and main thread process in parallel and reduce notifications
  • #14017 Improve I/O threads performance by using memory prefetching
  • #J1351 JSON - Reduce memory footprint of numerical values (MOD-9511)

Metrics 8.2-M01

  • #13944 CLIENT INFO and CLIENT LIST:
  • tot-net-in: total network bytes read from the client connection
  • tot-net-out: total network bytes sent to the client connection
  • tot-cmds: number of commands executed by the client connection
  • #13907 INFO: sentinel section - sentinel_total_tilt - number of times entering tilt mode

Redis 8.0 release notes

Redis 8.0.3

@Released Sun 6 Jul 2025 12:00:00 IST

Update urgency: SECURITY: There are security fixes in the release.

Security fixes 8.0.3

  • (CVE-2025-32023) Fix out-of-bounds write in HyperLogLog commands
  • (CVE-2025-48367) Retry accepting other connections even if the accepted connection reports an error

New Features 8.0.3

  • #14065 VSIM: Add new WITHATTRIBS to return the JSON attribute associated with an element

Bug fixes 8.0.3

  • #14085 A short read may lead to an exit() on a replica
  • #14092 db->expires is not defragmented

Redis 8.0.2

@Released Tue 27 May 2025 12:00:00 IST

Update urgency: SECURITY: There are security fixes in the release.

Security fixes 8.0.2

  • (CVE-2025-27151) redis-check-aof may lead to stack overflow and potential RCE

Other general improvements

  • #14048 LOLWUT for Redis 8

Redis 8.0.1

@Released Sun 13 May 2025 16:00:00 IST

Update urgency: MODERATE: No need to upgrade unless there are new features you want to use.

Performance and resource utilization improvements @8.0.1

  • #13959 Vector set - faster VSIM FILTER parsing

Bug fixes @8.0.1

  • #QE6083 Query Engine - revert default policy search-on-timeout to RETURN
  • #QE6050 Query Engine - @__key on FT.AGGREGATE used as reserved field name preventing access to Redis keyspace
  • #QE6077 Query Engine - crash when calling FT.CURSOR DEL while retrieving from the CURSOR

Notes

  • Fixed wrong text in the license files

8.0 GA (v8.0.0)

@Released Fri 2 May 2025 12:00:00 IST

This is the General Availability release of Redis Open Source 8.0.

Redis 8.0 deprecates previous Redis and Redis Stack versions.

Stand alone RediSearch, RedisJSON, RedisTimeSeries, and RedisBloom are no longer needed as they are now part of Redis.

Major changes compared to 7.4.2

  • Name change: Redis Community Edition is now Redis Open Source
  • License change: licensed under your choice of
  • (a) the Redis Source Available License 2.0 (RSALv2); or
  • (b) the Server Side Public License v1 (SSPLv1); or
  • © the GNU Affero General Public License (AGPLv3)
  • Redis Query engine and 8 new data structures are now an integral part of Redis 8
  • (1) Redis Query Engine, which now supports both horizontal and vertical scaling for search, query and vector workloads
  • (2) JSON - a queryable JSON document
  • (3) Time series
  • (4-8) Five probabilistic data structures: Bloom filter, Cuckoo filter, Count-min sketch, Top-k, and t-digest
  • (9) Vector set [beta] - a data structure designed for Vector Similarity Search, inspired by Sorted set
  • These nine components are included in all binary distributions

  • See instructions in the README.md file on how to build from source with all these components

  • New configuration file: redis-full.conf - loads Redis with all these components, and contains new configuration parameters for Redis Query engine and the new data structures
  • New ACL categories: @search, @json, @timeseries, @bloom, @cuckoo, @cms, @topk, @tdigest
  • Commands are also included in the existing ACL categories (@read, @write, etc.)

  • More than 30 performance and resource utilization improvements

  • A new I/O threading implementation which enables throughput increase on multi-core environments (set with io-threads configuration parameter)
  • An improved replication mechanism which is more performant and robust
  • New hash commands - HGETDEL, HGETEX, HSETEX

For more details, see the release notes of 8.0-M01, 8.0-M02, 8.0-M03,8.0-M04, and 8.0-RC1

Operating systems we test Redis 8.0 on

  • Ubuntu 20.04 (Focal Fossa), 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat)
  • Rocky Linux 8.10, 9.5
  • AlmaLinux 8.10, 9.5
  • Debian 11 (Bullseye), 12 (Bookworm)
  • macOS 13 (Ventura), 14 (Sonoma), 15 (Sequoia)

Supported upgrade paths (by replication or persistence)

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

Security fixes (compared to 8.0-RC1)

  • (CVE-2025-21605) An unauthenticated client can cause an unlimited growth of output buffers

Bug fixes (compared to 8.0-RC1)

  • #13966, #13932 CLUSTER SLOTS - TLS port update not reflected in CLUSTER SLOTS
  • #13958 ``XTRIM, XADD - incorrect lag due to trimming stream
  • #13931 ``HGETEX - wrong order of keyspace notifications
  • #JS1337 - JSON - JSON.DEL emits no DEL notification when removing the entire value (MOD-9117)
  • #TS1742 - Time Series - TS.INFO - duplicatePolicy is nil when set to the default value (MOD-5423) (edited)

8.0-RC1 (v7.9.240)

@Released Mon 7 Apr 2025 10:00:00 IST

This is the first Release Candidate of Redis Community Edition 8.0.

Release Candidates are feature-complete pre-releases. Pre-releases are not suitable for production use.

Headlines @8.0-RC1

8.0-RC1 includes a new beta data structure - vector set.

New Features @8.0-RC1

  • #13915 Vector set - a new data structure [beta]: Vector set extends the concept of sorted sets to allow the storage and querying of high-dimensional vector embeddings, enhancing Redis for AI use cases that involve semantic search and recommendation systems. Vector sets complement the existing vector search capability in the Redis Query Engine. The vector set data type is available in beta. We may change, or even break, the features and the API in future versions. We are open to your feedback as you try out this new data type.
  • #13846 Allow detecting incompatibility risks before switching to cluster mode

Bug fixes @8.0-RC1

  • #13895 RDB Channel replication - replica is online after BGSAVE is done
  • #13877 Inconsistency for ShardID in case both master and replica support it
  • #13883 Defrag scan may return nothing when type/encoding changes during it
  • #13863 RANDOMKEY - infinite loop during client pause
  • #13853 SLAVEOF - crash when clients are blocked on lazy free
  • #13632 XREAD returns nil while stream is not empty

Metrics @8.0-RC1

  • #13846 INFO: cluster_incompatible_ops - number of cluster-incompatible commands

Configuration parameters

  • #13846 cluster-compatibility-sample-ratio - sampling ratio (0-100) for checking command compatibility with cluster mode

8.0-M04 (v7.9.227)

@Committed Sun 16 Mar 2025 11:00:00 IST

This is the fourth 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-M04

8.0-M04 includes 3 new hash commands, performance improvements, and memory defragmentation improvements.

New Features @8.0-M04

  • #13798 Hash - new commands:
  • HGETDEL Get and delete the value of one or more fields of a given hash key
  • HGETEX Get the value of one or more fields of a given hash key, and optionally set their expiration
  • HSETEX Set the value of one or more fields of a given hash key, and optionally set their expiration
  • #13773 Add replication offset to AOF, allowing more robust way to determine which AOF has a more up-to-date data during recovery
  • #13740, #13763 shared secret - new mechanism to allow sending internal commands between nodes

Bug fixes @8.0-M04

  • #13804 Overflow on 32-bit systems when calculating idle time for eviction
  • #13793 WAITAOF returns prematurely
  • #13800 Remove DENYOOM from HEXPIRE, HEXPIREAT, HPEXPIRE, and HPEXPIREAT
  • #13632 Streams - wrong behavior of XREAD + after last entry

Modules API @8.0-M04

  • #13788 RedisModule_LoadDefaultConfigs - load module configuration values from redis.conf
  • #13815 RM_RegisterDefragFunc2 - support for incremental defragmentation of global module data
  • #13816 RM_DefragRedisModuleDict - allow modules to defrag RedisModuleDict
  • #13774 RM_GetContextFlags - add a REDISMODULE_CTX_FLAGS_DEBUG_ENABLED flag to execute debug commands

Performance and resource utilization improvements @8.0-M04

  • #13752 Reduce defrag CPU usage when defragmentation is ineffective
  • #13764 Reduce latency when a command is called consecutively
  • #13787 Optimize parsing data from clients, specifically multi-bulk (array) data
  • #13792 Optimize dictionary lookup by avoiding duplicate key length calculation during comparisons
  • #13796 Optimize expiration checks

8.0-M03 (v7.9.226)

@Committed Mon 20 Jan 2025 15:00:00 IST

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

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. A snap and Homebrew distributions are available as well.

Security fixes @8.0-M03

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

New Features @8.0-M03

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

Bug fixes @8.0-M03

  • #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 @8.0-M03

  • #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 @8.0-M03

  • #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 @8.0-M03

  • #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 @8.0-M03

  • 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 @8.0-M03

  • #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

8.0-M02 (v7.9.225)

@Committed Mon 28 Oct 2024 14:00:00 IST

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

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.

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 @8.0-M02

  • (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 @8.0-M02

  • #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 @8.0-M02

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

Performance and resource utilization improvements @8.0-M02

  • #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

8.0-M01 (v7.9.224)

@Released Thu 12 Sep 2024 10:00:00 IST

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.

8.0-M01 Headlines

Redis 8.0 introduces new data structures: JSON, time series, and 5 probabilistic data structures (previously available as separate Redis modules) and incorporates the enhanced Redis Query Enginer (with 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
  • The enhanced Redis Query Engine (with 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 8.0-M01

  • #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 8.0-M01

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

Performance and resource utilization improvements 8.0-M01

  • #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 8.0-M01

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

CLI tools 8.0-M01

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

Notes 8.0-M01

  • 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.

Redis Community Edition 7.4 release notes

Redis 7.4.5

@Released Sun 6 Jul 2025 12:00:00 IST

Update urgency: SECURITY: There are security fixes in the release.

[7.4.5] Security fixes

  • (CVE-2025-32023) Fix out-of-bounds write in HyperLogLog commands
  • (CVE-2025-48367) Retry accepting other connections even if the accepted connection reports an error

Redis 7.4.4

@Released Tue 27 May 2025 12:00:00 IST

Update urgency: SECURITY: There are security fixes in the release.

[7.4.4] Security fixes

  • (CVE-2025-27151) redis-check-aof may lead to stack overflow and potential RCE

[7.4.4] Bug fixes

  • #13966, #13932 CLUSTER SLOTS - TLS port update not reflected in CLUSTER SLOTS
  • #13958 XTRIM, XADD - incorrect lag due to trimming stream

Redis 7.4.3

@Released Wed 23 Apr 2025 12:00:00 IST

Update urgency: SECURITY: There are security fixes in the release.

[7.4.3] Security fixes

  • (CVE-2025-21605) An unauthenticated client can cause an unlimited growth of output buffers

[7.4.3] Bug fixes

  • #13661 FUNCTION FLUSH - memory leak when using jemalloc
  • #13793 WAITAOF returns prematurely
  • #13853 SLAVEOF - crash when clients are blocked on lazy free
  • #13863 RANDOMKEY - infinite loop during client pause
  • #13877 ShardID inconsistency when both primary and replica support it

Redis 7.4.2

@Released Mon 6 Jan 2025 12:30:00 IDT

Upgrade urgency SECURITY: See security fixes below.

[7.4.2] 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

[7.4.2] 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

Redis 7.4.1

@Released Wed 02 Oct 2024 20:17:04 IDT

Upgrade urgency SECURITY: See security fixes below.

[7.4.1] 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.

Redis 7.4.0 GA

@Released Mon Jul 29 2024 9:00:00 IDT

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

[7.4.0 GA] Features

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

[7.4.0 GA] Configuration parameters

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

[7.4.0 GA] 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

Redis 7.4 RC2

@Released Thu 27 Jun 2024 10:00:00 IST

Upgrade urgency LOW: This is the second Release Candidate for Redis Community Edition 7.4.

[7.4 RC2] Performance and resource utilization improvements

  • #13296 Optimize CPU cache efficiency

[7.4 RC2] Features

Changes to new 7.4 new features (compared to 7.4 RC1)

  • #13343 Hash - expiration of individual fields: when key does not exist - reply with an array (nonexisting code for each field)
  • #13329 Hash - expiration of individual fields: new keyspace event: hexpired

[7.4 RC2] Modules API

Potentially breaking changes to new 7.4 features (compared to 7.4 RC1)

  • #13326 Hash - expiration of individual fields: avoid lazy expire when called from a Modules API function

Redis 7.4 RC1

@Released Thu 6 Jun 2024 10:00:00 IST

Note: License changed - see LICENSE.txt

Upgrade urgency LOW: This is the first Release Candidate for Redis Community Edition 7.4.

Here is a comprehensive list of changes in this release compared to 7.2.5.

[7.4 RC1] New Features

  • #13303 Hash - expiration of individual fields. 9 commands were introduced:
  • HEXPIRE and HPEXPIRE set the remaining time to live for specific fields
  • HEXPIREAT and HPEXPIREAT set the expiration time to a UNIX timestamp for specific fields
  • HPERSIST removes the expiration for specific fields
  • HEXPIRETIME and HPEXPIRETIME get the expiration time for specific fields
  • HTTL and HPTTL get the remaining time to live for specific fields
  • #13117 XREAD: new id value + to start reading from the last message
  • #12765 HSCAN: new [NOVALUES] flag to report only field names
  • #12728 SORT, SORT_RO: allow BY and GET options in cluster mode when the pattern maps to the same slot as the key
  • #12299 CLIENT KILL: new optional filter: MAXAGE maxage - retain connections older than maxage seconds
  • #12971 Lua: expose os.clock() API for getting the elapsed time of Lua code execution
  • #13276 Allow SPUBLISH command within MULTI ... EXEC transactions on replica

[7.4 RC1] Bug fixes

  • #12898 XREADGROUP: fix entries-read inconsistency between master and replicas
  • #13042 SORT ... STORE: fix created lists to respect list compression and packing configs
  • #12817, #12905 Fix race condition issues between the main thread and module threads
  • #12577 Unsubscribe all clients from replica for shard channel if the master ownership changes
  • #12622 WAITAOF could timeout or hang if used after a module command that propagated effects only to replicas and not to AOF
  • #11734 BITCOUNT and BITPOS with nonexistent key and illegal arguments return an error, not 0
  • #12394 BITCOUNT: check for wrong argument before checking if key exists
  • #12961 Allow execution of read-only transactions when out of memory
  • #13274 Fix crash when a client performs ACL change that disconnects itself
  • #13311 Cluster: Fix crash due to unblocking client during slot migration

[7.4 RC1] Security improvements

  • #13108 Lua: LRU eviction for scripts generated with EVAL *** BEHAVIOR CHANGE ***
  • #12961 Restrict the total request size of MULTI ... EXEC transactions
  • #12860 Redact ACL username information and mark '*-key-file-pass configs' as sensitive

[7.4 RC1] Performance and resource utilization improvements

  • #12838 Improve performance when many clients call PUNSUBSCRIBE / SUNSUBSCRIBE simultaneously
  • #12627 Reduce lag when waking WAITAOF clients and there is not much traffic
  • #12754 Optimize KEYS when pattern includes hashtag and implies a single slot
  • #11695 Reduce memory and improve performance by replacing cluster metadata with slot specific dictionaries
  • #13087 SCRIPT FLUSH ASYNC now does not block the main thread
  • #12996 Active memory defragmentation efficiency improvements
  • #12899 Improve performance of read/update operation during rehashing
  • #12536 SCAN ... MATCH: Improve performance when the pattern implies cluster slot
  • #12450 ZRANGE ... LIMIT: improved performance

[7.4 RC1] Other general improvements

  • #13133 Lua: allocate VM code with jemalloc instead of libc and count it as used memory *** BEHAVIOR CHANGE ***
  • #12171 ACL LOAD: do not disconnect all clients *** BEHAVIOR CHANGE ***
  • #13020 Allow adjusting defrag configurations while active defragmentation is running
  • #12949 Increase the accuracy of avg_ttl (the average keyspace keys TTL)
  • #12977 Allow running WAITAOF in scripts
  • #12782 Implement TCP keep-alive across most Unix-like systems
  • #12707 Improved error codes when rejecting scripts in cluster mode
  • #12596 Support XREAD ... BLOCK in scripts; rejected only if it ends up blocking

[7.4 RC1] New metrics

  • #12849 INFO: pubsub_clients - number of clients in Pub/Sub mode
  • #12966 INFO: watching_clients - number of clients that are watching keys
  • #12966 INFO: total_watched_keys - number of watched keys
  • #12476 INFO: client_query_buffer_limit_disconnections - count client input buffer OOM events
  • #12476 INFO: client_output_buffer_limit_disconnections - count client output buffer OOM events
  • #12996 INFO: allocator_muzzy - memory returned to the OS but still shows as RSS until the OS reclaims it
  • #13108 INFO: evicted_scripts - number of evicted eval scripts. Users can check it to see if they are abusing EVAL
  • #12996 MEMORY STATS: allocator.muzzy - memory returned to the OS but still shows as RSS until the OS reclaims it
  • #12913 INFO MEMORY mem_overhead_db_hashtable_rehashing - memory resharding overhead (only the memory that will be released soon)
  • #12913 MEMORY STATS':overhead.db.hashtable.lut` - total overhead of dictionary buckets in databases
  • #12913 MEMORY STATS':overhead.db.hashtable.rehashing` - temporary memory overhead of database dictionaries currently being rehashed
  • #12913 MEMORY STATS':db.dict.rehashing.count` - number of top level dictionaries currently being rehashed
  • #12966 CLIENT LIST: watch - number of keys each client is currently watching

[7.4 RC1] Modules API

  • #12985 New API calls: RM_TryCalloc and RM_TryRealloc - allow modules to handle memory allocation failures gracefully
  • #13069 New API call: RM_ClusterKeySlot - which slot a key will hash to
  • #13069 New API call: RM_ClusterCanonicalKeyNameInSlot - get a consistent key that will map to a slot
  • #12486 New API call: RM_AddACLCategory - allow modules to declare new ACL categories

[7.4 RC1] Configuration parameters

  • #12178 New configuration parameters: max-new-connections-per-cycle and max-new-tls-connections-per-cycle to limit the number of new client connections per event-loop cycle
  • #7351 Rename some CPU configuration parameters for style alignment. Added alias to the old names to avoid breaking change

[7.4 RC1] CLI tools

  • #10609 redis-cli: new -t <timeout> argument: specify server connection timeout in seconds
  • #11315 redis-cli: new -4 and -6 flags to prefer IPV4 or IPV6 on DNS lookup
  • #12862 redis-cli: allows pressing up arrow to return any command (including sensitive commands which are still not persisted)
  • #12543 redis-cli: add reverse history search (like Ctrl+R in terminals)
  • #12826 redis-cli: add --keystats and --keystats-samples to combines --memkeys and --bigkeys with additional distribution data
  • #12735 redis-cli: fix: --bigkeys and --memkeys now work on cluster replicas
  • #9411 redis-benchmark: add support for binary strings
  • #12986 redis-benchmark: fix: pick random slot for a node to distribute operation across slots