# Redis changelog > In-memory data store used as a database, cache, and message broker. - Vendor: Redis - Category: Developer Tools - Official site: https://redis.io - Tracked by: What's New (https://whatsnew.fyi/product/redis) - Harvested from: GitHub (redis/redis) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 8.10.0 - Date: 2026-07-29 - Version: 8.10.0 - Original notes: https://github.com/redis/redis/releases/tag/8.10.0 - Permalink: https://whatsnew.fyi/product/redis/releases/8.10.0 This is the General Availability release of Redis 8.10 in Redis Open Source. ###### Major changes compared to 8.8 - Compact hashes - a new hash encoding that reduces memory usage by storing hash field names just once for keys that share a schema - New command: `HIMPORT` - high-throughput compact hash bulk insertion - TLS peer certificate-based server-to-server authentication - New commands: `LMOVEM`, `BLMOVEM` - move multiple elements between lists - New command: `SUNIONCARD` - get the cardinality of the union of multiple sets - New command: `SDIFFCARD` - get the cardinality of the difference between sets - New command: `BACKUP` - node-side implementation for backup and restore based on multi-part AOF (MP-AOF) - `XREAD`, `XREADGROUP` - new `MAXCOUNT` and `MAXSIZE` arguments to cap the cumulative reply entries and size - New command: `FT.ALIASLIST` - get all aliases for the index - Stemmer support for Malay and Tagalog languages - JSONPath extensions - New commands: `TS.NRANGE`, `TS.NREVRANGE` - Query a range across multiple time series; group results by timestamp - New command: `TS.READ` - optionally blocking read - New command: `TS.QUERYLABELS` - Get a list of labels and label-values - New command: `TS.MRANGE`, `TS.MREVRANGE` - new `EXCLUDEEMPTY` argument to exclude series with no reported samples - Performance improvements ###### Binary distributions - Alpine and Debian Docker images - https://hub.docker.com/_/redis - Install using snap - see https://github.com/redis/redis-snap - Install using brew - see https://github.com/redis/homebrew-redis - Install using RPM - see https://github.com/redis/redis-rpm - Install using Debian APT - see https://github.com/redis/redis-debian ###### Operating systems we test Redis 8.10 on - Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat), 26.04 (Resolute Raccoon) - Rocky Linux 8.10, 9.7, 10.1 - AlmaLinux 8.10, 9.7, 10.1 - Debian 12.13 (Bookworm), Debian 13.4 (Trixie) - Alpine 3.23 - macOS 14.8.4 (Sonoma), 15.7.4 (Sequoia), 26.3 (Tahoe) - for both Intel and ARM ###### Bug fixes (compared to 8.10-RC2) - #15513 Prevented a division-by-zero error when active defragmentation thresholds are configured with equal or reversed value - #15453 Clients blocked on `BLPOP`, `BLMOVE`, or `BLMOVEM` could remain blocked after `SORT` with `STORE` replaced the target key with a list - #15499 Memory usage reported for compressed replication clients could be lower than the actual memory consumed - #15518 notify modules when node's own ip/port changes - #15539 Loading an AOF file with an RDB preamble could fail when active defragmentation was enabled - RediSearch/RediSearch#10528 Crash in the numeric range tree when background garbage collection encounters an empty leaf during active indexing on a numeric field. (MOD-16877) - RediSearch/RediSearch#10605 FT.CREATE and FT.ALTER now reject an empty string as a field name, preventing a crash loop in the fork-GC on indexes with an empty TAG field. (MOD-17034) - RediSearch/RediSearch#10488 FT.INFO reports a negative num_records after garbage collection on indexes that include an INDEXMISSING field. (MOD-16940) - RediSearch/RediSearch#10568 Cluster FT.AGGREGATE fails with SEARCH_FIELD_DUP when a GROUPBY contains multiple REDUCE COLLECT calls over the same field differing only in option-keyword casing. (MOD-16365) - RediSearch/RediSearch#10605 FT.CREATE and FT.ALTER now return an error when a field name is an empty string; previously such schemas were accepted silently. (MOD-17034) - RediSearch/RediSearch#10522 coord_total_query_warnings_timeout double-counts timeout warnings for FT.SEARCH queries that use a hybrid (vector + filter) execution path. (MOD-15973) ### 8.8.1 - Date: 2026-07-23 - Version: 8.8.1 - Original notes: https://github.com/redis/redis/releases/tag/8.8.1 - Permalink: https://whatsnew.fyi/product/redis/releases/8.8.1 SECURITY: There is a security fix in the release. ###### Security fixes - RedisBloom/RedisBloom#1044 Crafted RESTORE payloads in RedisBloom and TDigest may trigger out-of-bounds writes, potentially leading to remote code execution ### 8.6.5 - Date: 2026-07-23 - Version: 8.6.5 - Original notes: https://github.com/redis/redis/releases/tag/8.6.5 - Permalink: https://whatsnew.fyi/product/redis/releases/8.6.5 SECURITY: There are security fixes in the release. ###### Security fixes - A crafted stream RESTORE payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution - RedisBloom/RedisBloom#1046 Crafted RESTORE payloads in RedisBloom and TDigest may trigger out-of-bounds writes, potentially leading to remote code execution ###### Bug fixes - RedisBloom/RedisBloom#1021 Replicate `CF.LOADCHUNK` data chunks to prevent silent Cuckoo Filter data loss on failover ### 8.4.5 - Date: 2026-07-23 - Version: 8.4.5 - Original notes: https://github.com/redis/redis/releases/tag/8.4.5 - Permalink: https://whatsnew.fyi/product/redis/releases/8.4.5 SECURITY: There are security fixes in the release. ###### Security fixes - A crafted stream RESTORE payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution - RedisBloom/RedisBloom#1039 Crafted RESTORE payloads in RedisBloom and TDigest may trigger out-of-bounds writes, potentially leading to remote code execution ###### Bug fixes - RedisBloom/RedisBloom#1020 Replicate `CF.LOADCHUNK` data chunks to prevent silent Cuckoo Filter data loss on failover ### 8.2.8 - Date: 2026-07-23 - Version: 8.2.8 - Original notes: https://github.com/redis/redis/releases/tag/8.2.8 - Permalink: https://whatsnew.fyi/product/redis/releases/8.2.8 SECURITY: There are security fixes in the release. ###### Security fixes - A crafted stream RESTORE payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution - RedisBloom/RedisBloom#1041 Crafted RESTORE payloads in RedisBloom and TDigest may trigger out-of-bounds writes, potentially leading to remote code execution ###### Bug fixes - RedisBloom/RedisBloom#1019 Replicate `CF.LOADCHUNK` data chunks to prevent silent Cuckoo Filter data loss on failover ### 7.4.10 - Date: 2026-07-23 - Version: 7.4.10 - Original notes: https://github.com/redis/redis/releases/tag/7.4.10 - Permalink: https://whatsnew.fyi/product/redis/releases/7.4.10 Update urgency: `SECURITY`: There is a security fix in the release. ###### Security fixes - A crafted stream `RESTORE` payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution ### 7.2.15 - Date: 2026-07-23 - Version: 7.2.15 - Original notes: https://github.com/redis/redis/releases/tag/7.2.15 - Permalink: https://whatsnew.fyi/product/redis/releases/7.2.15 Update urgency: `SECURITY`: There is a security fix in the release. ###### Security fixes - A crafted stream `RESTORE` payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution ### 6.2.23 - Date: 2026-07-23 - Version: 6.2.23 - Original notes: https://github.com/redis/redis/releases/tag/6.2.23 - Permalink: https://whatsnew.fyi/product/redis/releases/6.2.23 Update urgency: `SECURITY`: There is a security fix in the release. ###### Security fixes - A crafted stream `RESTORE` payload can make two consumers share the same NACK, leading to a use-after-free that may result in Remote Code Execution ### 8.10-rc2 — 8.10-RC2 - Date: 2026-07-20 - Version: 8.10-rc2 - Original notes: https://github.com/redis/redis/releases/tag/8.10-rc2 - Permalink: https://whatsnew.fyi/product/redis/releases/8.10-rc2 - Labels: Pre-release This is the second Release Candidate of Redis 8.10 in Redis Open Source. Release Candidates are feature-complete pre-releases. Pre-releases are not suitable for production use. ###### Bug fixes (compared to 8.10-RC1) - A user can manipulate data read by a connection by injecting \r\n sequences into a Redis error reply - A typo in release.h that could cause build failures ### 8.10-rc1 — 8.10-RC1 - Date: 2026-07-20 - Version: 8.10-rc1 - Original notes: https://github.com/redis/redis/releases/tag/8.10-rc1 - Permalink: https://whatsnew.fyi/product/redis/releases/8.10-rc1 - Labels: Pre-release This is the first Release Candidate of Redis 8.10 in Redis Open Source. Release Candidates are feature-complete pre-releases. Pre-releases are not suitable for production use. ###### Headlines: Redis 8.10 introduces new features and performance improvements. ###### Operating systems we test Redis 8.10 on - Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat), 26.04 (Resolute Raccoon) - Rocky Linux 8.10, 9.7, 10.1 - AlmaLinux 8.10, 9.7, 10.1 - Debian 12.13 (Bookworm), Debian 13.4 (Trixie) - Alpine 3.23 - macOS 14.8.4 (Sonoma), 15.7.4 (Sequoia), 26.3 (Tahoe) - for both Intel and ARM ###### New Features (compared to 8.8) - #15364 Compact hashes - a new hash encoding that reduces memory usage by storing hash field names just once for keys that share a schema - #15364 New command: `HIMPORT` - high-throughput compact hash bulk insertion - #15405 New commands: `LMOVEM`, `BLMOVEM` - move multiple elements between lists - #14893 New command: `SUNIONCARD` - get the cardinality of the union of multiple sets - #15278 New command: `SDIFFCARD` - get the cardinality of the difference between sets - #15441 New command: `BACKUP` - node-side implementation for backup and restore based on multi-part AOF (MP-AOF) - #15282 `XREAD`, `XREADGROUP` - new `MAXCOUNT` and `MAXSIZE` arguments to cap the cumulative reply entries and size - #15337 New `SCRIPT_RUNNER` command flag: flag commands that execute scripts or functions - #15347 `SLOWLOG GET` - new reply argument: total argument count - RediSearch/RediSearch#9626 New command: `FT.ALIASLIST` - get all aliases for the index (RED-197340) - RediSearch/RediSearch#9052 Stemmer support for Malay and Tagalog languages (RED-132425) - RediSearch/RediSearch#9291 `FT.AGGREGATE` - new `COLLECT` reducer: separate remote and local reducer invocations (RED-177887) - RediSearch/RediSearch#8169, RediSearch/RediSearch#8236, RediSearch/RediSearch#9234, RediSearch/RediSearch#9443 — `FT.SEARCH`, `FT.AGGREGATE`, `FT.HYBRID`: enforce query `TIMEOUT` more strictly - The `search-on-timeout` policy now offers three options: - `FAIL` — reject timed-out queries. With `search-workers` > 0` (the default), the timeout is enforced preemptively - `RETURN` (default) — return best-effort partial results, without enforcing strictness during post-processing - `RETURN_STRICT` (new) — return best-effort partial results while enforcing the timeout through the post-processing (result) pipeline - Queries executed on the main thread (i.e., when `search-workers` is 0) are capped by `search-_max-foreground-timeout-limit` - RedisJSON/RedisJSON#1602, RedisJSON/RedisJSON#1603, RedisJSON/RedisJSON#1604, RedisJSON/RedisJSON#1607, RedisJSON/RedisJSON#1618 JSONPath extensions (MOD-16274, MOD-16275): - Projection expressions at the top level of a JSONPath query - `==` and `!=` can now compare any literal, including array and object literals - Filter negation operator: `!` - `size`/`sizeof` and `empty` operators on string, array, object, and nodelist - `in` and `nin` operators: membership test on an array and nodelist - Operators on numbers: binary `-`, `+`, `*`, `/`, `%`, and unary `-` and `+` - Operator on object: `~` - `length()` function on array, object, and string - Functions on number: `abs()`, `ceiling()`, `floor()` - Functions on string: `match()`, `search()` - Strings concatenation with `concat()` - Functions on array: `first()`, `last()`, `index()`, `append()` - Aggregation functions on array: `min()`, `max()`, `avg()`, `sum()`, `stddev()` - Function on object: `keys()` - Function on nodelist: `count()` - Function on nodelist with exactly one node: `value()` - Relations functions on array and nodelist: `subsetof()`, `anyof()`, `noneof()` - RedisTimeSeries/RedisTimeSeries#2052 New commands: `TS.NRANGE`, `TS.NREVRANGE` - Query a range across multiple time series; group results by timestamp (RED-149232) - RedisTimeSeries/RedisTimeSeri _[Truncated at 4000 characters — full notes: https://github.com/redis/redis/releases/tag/8.10-rc1]_