Redis Stack 7.2 release notes
Redis Stack 7.2 release notes.
Redis Stack 7.2.0-v13 (October 2024)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: SECURITY
: there are security fixes in the release.
Headlines:
This version includes security fixes for the Redis server, addressing potential vulnerabilities such as an RCE when using Lua library components, and a denial-of-service (DoS) risk due to malformed ACL selectors or unbounded pattern matching. Additionally, this maintenance release contains a bug fix to prevent crashes in cluster mode and includes the latest version of Redis Insight.
Details:
Security and privacy
- Redis:
- (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
-
Redis:
- #13315 Fixed crashes in cluster mode
-
Redis version:
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with Redis Insight. The docker image redis/redis-stack for this version is bundled with Redis Insight 2.58.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v12 (August 2024)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Headlines:
The updated search and query version introduces several new features and important bug fixes, including a critical one. This new release of Redis Stack 7.2.0 also includes updated versions of JSON and time series data structures, each incorporating several bug fixes.
This maintenance release also contains the latest version of RedisInsight.
Details:
Improvements
- Search and query:
- #4792 - Add character validations to simple string replies and escape it when required (MOD-7258)
- #4768 - Indicate which value is missing on the error message at the aggregation pipeline (MOD-7201)
- #4745 -
GROUPBY
recursion cleanup (MOD-7245) - #4823 - Mechanism of keys expiration during the query execution clearing intermediate results
Bug Fixes
-
Search and query:
- #4754 - Correct return the maximum value for negative values when using
MAX
reducer (MOD-7252) - #4737 - Separators ignored when escaping backslash
\
after the escaped character such as inhello\\,world
ignoring,
(MOD-7240) - #4717 - Sorting by multiple fields
SORTBY 2 @field1 @field2
was ignoring the subsequent field(MOD-7206) - #4803 - Keys expiring during query returning empty array (MOD-7010)
- #4794 - Index sanitiser (GC) trying to clean deleted numeric index could cause a crash (MOD-7303)
- #4754 - Correct return the maximum value for negative values when using
-
JSON:
- #1212
JSON.MSET
- AOF commands are duplicated multiple times (MOD-7293)
- #1212
-
Time series:
-
Redis version:
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with Redis Insight. The docker image redis/redis-stack for this version is bundled with Redis Insight 2.54.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v11 (June 2024)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: MODERATE
: Program an upgrade of the server, but it's not urgent.
Headlines:
Redis Stack 7.2.0-v11 introduces a new version of the Redis server with several bug fixes, and an updated search and query capability with numerous enhancements and bug fixes.
The updated search and query version features improved memory reporting that accounts for additional memory consumed by TAG
and TEXT
tries, as well as enhanced memory counting for inverted indexes. Also, it includes additional fields in the FT.INFO
command when used within a cluster.
This maintenance release also contains the latest version of RedisInsight.
Details:
Improvements
- Search and query:
Bug Fixes
-
Redis:
- #12824 A single shard cluster leaves failed replicas in CLUSTER SLOTS instead of removing them
- #12955 Crash in LSET command when replacing small items and exceeding 4GB
- #13004 Blocking commands timeout is reset due to re-processing command
- #13115 Conversion of numbers in Lua args to redis args can fail. Bug introduced in 7.2.0
-
CLI tools:
-
Search and query:
-
Redis version:
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with Redis Insight. The docker image redis/redis-stack for this version is bundled with Redis Insight 2.50.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v10 (April 2024)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Headlines:
This version contains the latest search and query capability with several improvements and bug fixes, including critical bug fixes. This release also includes the latest JSON data structure with a fix for a potential crash, the time series data structure with more detailed LibMR error messages, and the latest version of triggers and functions with updated v8 version and a bug fix. It also contains the latest version of RedisInsight.
Details:
Improvements
-
Search and query:
-
Time series:
- #1593 More detailed LibMR error messages
-
Triggers and Functions:
- #1100 Update v8 version to 12.3.219.15
Bug Fixes
-
Search and query:
- #4481 Query syntax on
GEOSHAPE
accepting just prefix instead of complete predicate (MOD-6663) - #4513
FT.CURSOR READ
in a numeric query causing a crash (MOD-6597) [critical bug] - #4534
FT.PROFILE
with incorrect arguments could cause a crash on cluster setup (MOD-6791) [critical bug] - #4530 Some parameter settings using just prefixes instead of full values were working (MOD-6709)
- #4539 Unfree memory while re-indexing loading a new RDB could cause a crash (MOD-6831, 6810) [critical bug]
- #4498 Vector pre-filtered query (hybrid query) that timeout causing a crash due to deadlock when trying to write a new document(MOD-6510, MOD-6244) [critical bug]
- #4495
FT.SEARCH
accessing an inexistent memory address causes a crash if using the deprecatedFT.ADD
command (MOD-6599) [critical bug]
- #4481 Query syntax on
-
JSON:
- #1192 Crashes with numeric values greater than i64::MAX (MOD-6501, MOD-4551, MOD-4856, MOD-5714)
-
Triggers and Functions:
- #1093 Crash when logging NULL characters
Redis version:
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.46.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Downloads
- macOS: x86_64, arm64
- AppImage: x86_64
- Ubuntu: Bionic x86_64, Bionic arm64, Focal x86_64, Focal arm64, Snap x86_64, Snap arm64, Jammy x86_64, Jammy arm64
- Debian: Bullseye x86_64
- RHEL 7/CentOS Linux 7: x86_64
- RHEL 8/CentOS Linux 8: x86_64
- RHEL 9/Rocky Linux 9/CentOS Linux 9: x86_64
- Redis Stack on Dockerhub: x86_64 and arm64
- Redis Stack server on Dockerhub: x86_64 and arm64
Redis Stack 7.2.0-v9 (March 2024)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: MODERATE
: Program an upgrade of the server, but it's not urgent.
Headlines:
This version contains the latest search and query capability with an improvement for memory allocation patterns on the memory used to query GEOSHAPE
types, and several bug fixes. This release also includes the latest probabilistic data structures with a fix for a potential crash, and triggers and functions capability with an updated v8 version. It also contains the latest version of RedisInsight.
Details:
Improvements
- Search and query:
- #4313 Memory allocation patterns on the memory used to query
GEOSHAPE
types (MOD 6431)
- #4313 Memory allocation patterns on the memory used to query
Bug Fixes
-
Search and query:
- #4476 Split
INFIX
andSUFFIX
report onFT.EXPLAIN
andFT.EXPLAINCLI
(MOD-6186) - #4467 Memory leak upon suffix query for a
TAG
indexed withWITHSUFFIXTRIE
(MOD-6644) - #4403 Clustered
FT.SEARCH
hangs forever without replying when an invalid topology is found (MOD-6557) - #4355 Searching for a synonym will iterate in the same group multiple times, causing a performance hit (MOD-6490)
- #4476 Split
-
Probabilistic data structures:
- #753 Potential crash on
CMS.MERGE
when using invalid arguments
- #753 Potential crash on
-
Triggers and Functions:
- #1089 Update v8 version to 12.2.281.21
-
Redis version:
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.44.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v8 (January 2024)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: HIGH
: There is a critical bug fixed in the probabilistic data structures that may affect a subset of users. Upgrade!
Headlines:
This version contains the latest probabilistic data structures with a critical bug fix, as well as the latest JSON data structure with a breaking change to revert JSONPath default path value from $
to .
under RESP3, and a fix for RediSearch deadlock. This version contains the latest version of RedisInsight.
Details:
Improvements
Bug Fixes
-
JSON:
- #1095 Fix for RediSearch deadlock. See RediSearch 2.8.10 release notes (MOD-5895)
-
Probabilistic data structures:
- #727 Potential crash on CF.LOADCHUNK (MOD-6344) - Additional fixes
-
Redis version:
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.40.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v7 (January 2024)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: SECURITY
: there are security fixes in the release.
Headlines:
This version contains security fixes for the Redis server to properly handle the resizing of memory buffers, as well as security fixes for probabilistic data structures to avoid potential crashes. The new Redis Stack version also contains several improvements and bug fixes for the Search and query capability, including fixes of critical bugs. It also offers the latest time series data structure, the latest Triggers and Functions capability with various improvements and bug fixes, and it contains the latest version of RedisInsight.
Details:
Security and privacy
-
Redis:
- (CVE-2023-41056) In some cases, Redis may incorrectly handle resizing of memory buffers which can result in incorrect accounting of buffer sizes and lead to heap overflow and potential remote code execution
-
Probabilistic data structures:
Improvements
-
Search and query:
- #3682 Report last key error and field type indexing failures on
FT.INFO
(MOD-5364) - #4236 Adding Vector index parameters at the
FT.INFO
report (MOD-6198) - #4196 Check for timeout after results processing in
FT.SEARCH
on cluster setup (MOD-6278) - #4164 Report
TIMEOUT
,MAXPREFIXEXPANSION
warnings in RESP3 replies (MOD-6234) - #4165 Indicate timeout on
FT.PROFILE
report (MOD-6184) - #4149 Indicate timeout from Cursor on
FAIL
timeout policy (MOD-5990) - #4147 Initialization of the maximum numeric value range leading to a better balance of the index leaf splitting (MOD-6232)
- #3940 Query optimisation when predicate contains multiple
INTERSECTION
(AND) ofUNION
(OR) (MOD-5910) - #4059 Return cursor id when experiencing a timeout, when the policy is
ON_TIMEOUT RETURN
(MOD-5966) - #4006 Possibly problematic index name alias validation (MOD-5945)
- #4264 Granularity of the time reporting counters on
FT.PROFILE
(MOD-6002)
- #3682 Report last key error and field type indexing failures on
-
Triggers and Functions:
- Update v8 version to 12.0/267.13
Bug Fixes
-
Redis:
- #12805, #12832 Fix crashes of cluster commands clusters with mixed versions of 7.0 and 7.2
- #12564 Fix slot ownership not being properly handled when deleting a slot from a node
- #12733 Fix atomicity issues with the RedisModuleEvent_Key module API event
- #4324 Internal cluster mechanism not waiting until all replies from shards causing a crash (MOD-6287)
- #4297 Execution loader when using
FT.AGGREGATE
withLOAD
stage failing to buffer the right results potentially causing a crash (MOD-6385)
-
Search and query:
- #4287 Re-index process while syncing from the replica causes a crash due to internal index variable initialisation (MOD-6337, MOD-6336)
- #4249 Memory tracking on cluster setups causing high memory usage and potentially Out-of-Memory (MOD-6123, MOD-5639)
- #4244 Profiling
FT.AGGREGATE
using theWITHCURSOR
flag with - clause causes a crash due to timeout (MOD-5512) - #3916 Expiring
JSON
documents while querying it causing a crash due to deadlock (MOD-5769, MOD-5895, MOD-6189, MOD-5895) - #4235 Memory excessively growing on databases caused by unbalanced nodes on inverted index trie (MOD-5880, MOD-5952, MOD-6003)
- #4190 Profiling
FT.AGGREGATE
causes a crash on RESP3 replies (MOD-6250, MOD-6295) - #4148, #4038
ON_TIMEOUT FAIL\RETURN
policies in the cluster setup not being respected (MOD-6035, MOD-5948, MOD-6090) - #4110 Format of error response contains inconsistencies when timing out(MOD-6011, MOD-5965)
- #4104
FT.SEARCH
not responding when using TLS encryption on Amazon Linux 2 (MOD-6012) - #4009 In cluster setup does not return a timeout error for
FT.SEARCH
(MOD-5911) - #3920 In cluster setup does not return a timeout error for
FT.AGGREGATE
(MOD-5209) - #3914
FT.CURSOR READ
with geo queries causing a crash when data is updated between the cursor reads (MOD-5646) - #4220 Server crash when attempting to run the ForkGC (Garbage Collection routine) after dropping the index (MOD-6276)
-
Time series:
-
Probabilistic data structures:
- #707 Top-K:
TOPK.ADD
andTOPK.QUERY
crash when an item name is an empty string (RED-114676)
- #707 Top-K:
-
Triggers and Functions:
- #1069 Fixed an issue where a keyspace notification could be lost
-
Redis version:
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.40.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v5 (October 2023)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Headlines:
This version contains the latest Search and Query with various improvements and fixes for critical bugs, triggers and functions with an updated v8 version, as well as new JSON, time series, and probabilistic data structures with several improvements. The new version introduces support for RHEL 9 and Rocky Linux 9. It also includes the latest version of RedisInsight.
Details:
Improvements
-
Search and Query:
- #3938 Propagating error messages in a multi-shard database, instead of failing silently (MOD-5211)
-
JSON:
- #1102 Added support for CBL-Mariner 2
-
Time series:
- #1516 Added support for CBL-Mariner 2
-
Probabilistic data structures:
Bug Fixes
-
Redis:
- Fix for the "The RDB file contains AUX module data I can't load: no matching module 'graphdata'" error message when upgrading Redis Stack
-
Search and Query:
- #3874 Heavy document updates cause memory growth once memory blocks aren't properly released (MOD-5181)
- #3967 Resharding optimizations cause the process to get stuck (MOD-5874, MOD-5864)
- #3892 After cleaning the index the GC could cause corruption on unique values (MOD-5815)
- #3853 Queries with
WITHCURSOR
making memory growth sinceCURSOR
wasn't invalidated in the shards (MOD-5580)
-
Triggers and Functions:
- Update v8 version to 11.8.172.15
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.36.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v4 (October 2023)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: SECURITY
: There are security fixes in the release.
Headlines:
This version contains a security fix for the Redis server to avoid bypassing desired Unix socket permissions on startup, as well as several improvements and bug fixes.
Details:
Security and privacy
- Redis:
- (CVE-2023-45145) The wrong order of
listen(2)
andchmod(2)
calls creates a race condition that can be used by another process to bypass desired Unix socket permissions on startup.
- (CVE-2023-45145) The wrong order of
Improvements
- Redis:
- #12611 Fix compilation error on MacOS 13
- #12604 Fix crash when running rebalance command in a mixed cluster of 7.0 and 7.2 Nodes
- #12561 Fix the return type of the slot number in cluster shards to integer, which makes it consistent with past behavior
- #12569 Fix CLUSTER commands are called from modules or scripts to return TLS info appropriately
- #12571 redis-cli, fix crash on reconnect when in SUBSCRIBE mode
- #12474 Fix overflow calculation for next timer event
Bug Fixes
- Redis:
- #12620 WAITAOF could timeout in the absence of write traffic in case a new AOF is created and an AOF rewrite can't immediately start
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.34.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v3 (October 2023)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: SECURITY
: There are security fixes in the release.
Headlines:
This version contains the latest Search and Query capability v. 2.8.8, and triggers and functions v. 2.0.13 with various improvements, security fixes for Search and Query, and several bug fixes. It also includes the latest version of RedisInsight.
Details:
Security and privacy
- Search and Query:
Improvements
Bug Fixes
-
Search and Query:
- #3771 Broken
lower()
andupper()
functions onAPPLY
stage inFT.AGGREGATE
inDIALECT 3
- #3752 Setting a low
MAXIDLE
parameter value inFT.AGGREGATE
causes a crash - #3780 Wrong document length calculation causing incorrect score values
- #3808
LOAD
step after aFILTER
step could cause a crash onFT.AGGREGATE
- #3823
APPLY
orFILTER
parser leak - #3837 Connection using TLS fails on Redis 7.2
- #3856 Adding new nodes to OSS cluster causing a crash
- #3854 Vector range query could cause Out-of-Memory due a memory corruption
- #3771 Broken
-
Triggers and Functions:
- Update v8 version to 11.7.439.17.
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.34.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v2 (September 2023)
This is a maintenance release for Redis Stack Server 7.2.0.
Update urgency: SECURITY
: There are security fixes in the release.
Headlines:
This version contains security improvements for time series to not expose internal commands and several bug fixes for triggers and functions.
Details:
Security and privacy
- Time series:
- #1506 Don’t expose internal commands
Bug Fixes
- Triggers and Functions:
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.32.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v1 (September 2023)
This is a maintenance release for Redis Stack Server 7.2.0
Update urgency: SECURITY
: There are security fixes in the release.
Headlines:
This version contains security fixes for the Redis server for cases when users may access keys that are not explicitly authorized by the ACL configuration using the SORT_RO command.
Details:
Security Fixes
- Redis:
- (CVE-2023-41053) Redis does not correctly identify keys accessed by SORT_RO and, as a result, may grant users executing this command access to keys that are not explicitly authorized by the ACL configuration.
Bug Fixes
- Redis:
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.32.
Note: version numbers follow the following pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-v0 (August 2023)
This is a GA release of Redis Stack version 7.2.
Headlines:
Redis server 7.2 introduces significant memory and speed optimizations for lists, sets, and sorted sets, several improvements, including encoding improvements for sets and lists, stream consumer group improvements, and improved durability. Search and Query brings the frequently asked Geo polygons queries for basic shapes and improved query performance on sorting in different scenarios. JSON introduces two new commands: JSON.MERGE and JSON.MSET for more efficient data manipulation. Preview of triggers and functions that allows developers to run JavaScript functions inside the Redis process. Lastly, 7.2 adds the option to use the new protocol RESP3 improving the response format for all commands.
Redis server:
Redis server 7.2 brings performance and resource utilization improvements, including significant memory and speed optimizations for lists, sets, and sorted sets. This new version adds a new WITHSCORE
command argument for ZRANK and ZREVRANK, new commands, such as CLIENT NO-TOUCH for clients to run commands without affecting LRU/LFU of keys, and more. Redis 7.2 brings behavior changes by introducing a new format (version 11) for RDB files, which is incompatible with older versions, changing module API, and other changes.
Search and Query:
This new major version introduces the frequently asked Geo Polygon Search. Adding the GEOSHAPE field type that supports polygon shapes using the WKT notation. In addition to the existing GEO
for geo range queries, now an alias for GEOPOINT
, we add GEOSHAPE
with the support for POLYGON
and POINT
as new shapes formats and polygons operations.
In addition, 7.2 brings improvements in performance for SORT BY
operations using FT.SEARCH
and FT.AGGREGATE
, and the new FORMAT
for better readability and future support for better error handling responses on FT.SEARCH
and FT.AGGREGATE
in RESP3 only.
JSON: JSON introduces two new commands:
- JSON.MERGE merges a given JSON value into matching paths so that the JSON values at the matching paths are updated, deleted, or expanded.
- JSON.MSET sets or updates one or more JSON values according to specified key-path-value triplets.
Graph:
Graph capabilities are no longer included in Redis Stack. See the RedisGraph End-of-Life Announcement.
[!WARNING]
If you are using graph capabilities with an older version of Redis Stack - please don't upgrade.
Triggers and functions preview: Triggers and functions is part of Redis Stack 7.2 as public preview, any feedback is highly appreciated.
Triggers and functions provides support for running JavaScript functions inside the Redis process. These functions can be executed on-demand, by an event-driven trigger, or by a stream processing trigger. Triggers and functions empowers developers to build and maintain real-time applications by moving logic closer to the data, ensuring a lower latency whilst delivering the best developer experience.
Try it out with the triggers and functions quick start.
Details:
Find more details about features and optimizations introduced with Redis Stack 7.2 here:
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with the latest RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.30.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-rc2 (July 2023)
This is the third release of Redis Stack version 7.2.0.
Update urgency: SECURITY
: there are security fixes in the release.
Headlines:
This version contains security improvements for the Redis server.
Details:
Features
- Redis:
Improvements
- Redis:
- (CVE-2022-24834) A specially crafted Lua script executing in Redis can trigger a heap overflow in the cjson and cmsgpack libraries, and result in heap corruption and potentially remote code execution. The problem exists in all versions of Redis with Lua scripting support, starting from 2.6, and affects only authenticated and authorized users.
- (CVE-2023-36824) Extracting key names from a command and a list of arguments may, in some cases, trigger a heap overflow and result in reading random heap memory, heap corruption and potentially remote code execution. Specifically: using COMMAND GETKEYS* and validation of key names in ACL rules.
- #12269 Allow CLUSTER SLOTS / SHARDS commands during loading
- #12233 Support TLS service when "tls-cluster" is not enabled and persist both plain and TLS port in nodes.conf
- #12320 Update SPOP and RESTORE commands to replicate unlink commands to replicas when the server is configured to use async server deletes
- #12229 Try lazyfree the temporary zset in ZUNION / ZINTER / ZDIFF
- #12298 Optimize PSUBSCRIBE and PUNSUBSCRIBE from O(N*M) to O(N)
- #12209 Optimize SCAN, SSCAN, HSCAN, ZSCAN commands
- #12315 Set Jemalloc --disable-cache-oblivious to reduce memory overhead
- #12229 Optimize ZINTERCARD to avoid create a temporary zset
- #12205 Optimize HRANDFIELD and ZRANDMEMBER listpack encoded ()
- #12155, #12082, #11626, #11944, #12316, #12250, #12177, #12185 Numerous other optimizations
- #12254 redis-cli: Handle RESP3 double responses that contain a NaN
- #11834 redis-cli: Support URIs with IPv6
Changed Behavior
- Redis:
- #10536, #12166 Cluster SHARD IDs are no longer visible in the cluster nodes output
- #12326 When calling PUBLISH with a RESP3 client that's also subscribed to the same channel, the order is changed and the reply is sent before the published message
- #12321 Align semantics of the new (v7.2 RC2) RM_ReplyWithErrorFormat with RM_ReplyWithError. This is a breaking change that affects the generated error code
- #12304 Forbid RM_AddPostNotificationJob on loading and on read-only replicas
- #12219 Add ability for module command filter to know which client is being handled
Bug Fixes
- Redis:
- #12326 Fix broken protocol when PUBLISH is used inside MULTI when the RESP3 publishing client is also subscribed for the channel
- #12220 Fix WAIT to be effective after a blocked module command being unblocked
- #12276 Re-enable downscale rehashing while there is a fork child
- #12276 Fix possible hang in HRANDFIELD, SRANDMEMBER, ZRANDMEMBER when used with
<count>
- #12276 Improve fairness issue in RANDOMKEY, HRANDFIELD, SRANDMEMBER, ZRANDMEMBER, SPOP, and eviction
- #12344 Cluster: fix a race condition where a slot migration may revert on a subsequent failover or node joining
- #12301Fix XREADGROUP BLOCK with ">" from hanging
- #12247Fix assertion when a blocked command is rejected when re-processed
- #12342Fix use after free on a blocking RM_Call
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.26.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-rc2 (June 2023)
This is the second release of Redis Stack version 7.2.0.
Headlines:
This version contains a new capability - Triggers and Functions, improvements to the Search and Query capability, and improvements to the JSON, time series and probabilistic data structures. It also includes the latest version of RedisInsight.
The new Search and Query version introduces new and frequently asked Geo Polygon Search. Adding the GEOSHAPE
field type that supports polygon shapes using WKT notation. Besides the current GEO
(alias for GEOPOINT
) used already geo range queries, we add the support for POLYGON
as new shapes. In addition, it brings improvements in performance for SORT BY
operations using FT.SEARCH
and FT.AGGREGATE
.
This release includes a new capability - Triggers and Functions that brings the ability to execute and trigger business logic inside Redis using JavaScript (JS). Detailed documentation and examples can be found in this GitHub repository. The Triggers and Functions commands are aligned with the Redis Functions command. The API is not yet final and might change based on feedback. Any feedback is highly appreciated.
Details:
Features
-
Search and Query:
- #3553 Introduce support for Geo-polygon shapes and queries
- #3476, #3660 Adding
GEOSHAPE
field type to map polygons in theSCHEMA
onFT.CREATE
. - Support for polygons
POLYGON
using WKT notation, for examplePOLYGON((x1 y1, x2 y2, ...))
. - #3556 Adjust the query syntax on
FT.SEARCH
for Polygons using the predicate@geom:[OPERATOR $poly]
and defining polygon in WKT format asPARAMS 2 poly "POLYGON((10 20, ...))"
usingDIALECT 3
. - Initially
WITHIN
andCONTAINS
operators withGEOSHAPES
for now. - #3645 Support multiple coordinate systems cartesian (X,Y) and geographic (lon, lat). Geographic coordinate system using spherical indexing as default (
SPHERICAL
).
- #3476, #3660 Adding
- #3046 Introduce performance optimization for sorting operations on
FT.SEARCH
andFT.AGGREGATE
as default onDIALECT 4
. It will improve performance in 4 different scenarios, listed below:- Skip Sorter - applied when there is no sort of any kind. The query can return once it reaches the
LIMIT
requested results. - Partial Range - applied when there is a
SORTBY
a numeric field, with no filter or filter by the same numeric field, the query iterate on a range large enough to satisfy theLIMIT
requested results. - Hybrid - applied when there is a
SORTBY
a numeric field in addition to another non-numeric filter. Some results will get filtered, and the initial range may not be large enough. The iterator then is rewinded with the following ranges, and an additional iteration takes place to collectLIMIT
requested results. - No optimization - If there is a sort by score or by non-numeric field, there is no other option but to retrieve all results and compare their values.
- #3651 Add
WITHCOUNT
argument that allow return accurate counts for the query results with sorting. This operation processes all results in order to get accurate count, being less performant than the optimised option (default behaviour onDIALECT 4
).
- Skip Sorter - applied when there is no sort of any kind. The query can return once it reaches the
- #3553 Introduce support for Geo-polygon shapes and queries
-
JSON:
- #916 Introduce the new
JSON.MERGE
in compliance with RFC 7396, supporting:- Creating new attributes on an existing JSON document
- Updating and replacing values in parent and child attributes
- Deleting existing attributes (giving
null
as value) - Array update - replacing an entire array with the new value.
- #944 Introduce
JSON.MSET
, supporting atomic multiple sets for keys in the same hash slot.
- #916 Introduce the new
-
Triggers and Functions:
- #875 The api_version was added to the library prologue indicating the minimum required API version. Indicating the library works on the specified API version and later minor versions. #896 Additional optional callback on a KeySpace trigger that can perform read operations exactly when the notification happens.
- #910 The JavaScript API is updated to be inline with JavaScript best practices. Registrations of functions and triggers is done with mandatory arguments and a single optional object.
- #935 Ability to load an RDB from a Redis Server with the RedisGears module loaded but NOT used into a Redis Server without the RedisGears module.
- Updated commands:
- #910
TFUNCTION
andTFCALL
is used instead ofRG.FUNCTION
andRG.FCALL
. - #939 The commands are updated to match the Redis Functions commands.
TFCALL
combines the library and function in a single argument with '.' separated. Example:TFCALL <library_name>.<function_name>
. - #900 rated the ability to run functions as a coroutine in
TFCALLASYNC
. Clients rely onTFCALL
to never block shared connections so other commands are not delayed on such connections.
- #910
Improvements
-
Search and Query:
-
Triggers and Functions:
Changed Behavior
- Search and Query:
Bug Fixes
-
Search and Query:
- #3597 Duplicating alias as output name on
FT.AGGREGATE
reducer (REDUCE
argument) isn't return results. - #3654 Added check for
@
prefix onGROUPBY
fields returnig an error instead of wrong results. - #3501 Sorting by 2 or more fields follow the order not ignoring the second argument.
- #3582 Sorter will set lower rank in documents expired during query time, preventing clients to freeze.
- #3597 Duplicating alias as output name on
-
JSON:
- #1025
JSON.TOGGLE
key space notification fix.
- #1025
-
Time series:
-
Triggers and Functions:
- #913 Do not trigger notifications when Redis is loading from a persistence file.
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with the latest RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.26.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.
Redis Stack 7.2.0-rc1 (June 2023)
This is the first release of Redis Stack version 7.2.0.
Headlines:
This version contains the latest Search and Query capability, JSON capability, and a new version of RedisInsight.
The latest Search and Query capability introduces new and frequently asked Geo Polygon Search. Adding the GEOMETRY
field type that supports polygon shapes using WKT notation. In addition, it brings improvements in performance for SORT BY
operations using FT.SEARCH
and FT.AGGREGATE
.
The latest JSON capability introduces the new JSON.MERGE
in compliance with RFC 7396, and JSON.MSET
, which supports atomic multiple sets for keys in the same hash slot.
Details:
Features
-
Search and Query:
- #3553 Introduce support for Geo-polygon shapes and queries
- #3476 Adding
GEOMETRY
field type to map polygons in theSCHEMA
onFT.CREATE
- Adding polygons using WKT notation, for example
POLYGON((x1 y1, x2 y2, ...))
- #3556 Adjust the query syntax on
FT.SEARCH
for Polygons using the predicate@geom:[OPERATOR $poly]
and defining polygon in WKT format asPARAMS 2 poly "POLYGON((10 20, ...))"
usingDIALECT 3
- Initially
WITHIN
andCONTAINS
operators with Geometries only
- #3476 Adding
- #3046 Introduce the
OPTIMIZE
keyword toSORTBY
queries usingFT.SEARCH
andFT.AGGREGATE
that improve performance in 4 different scenarios:- Skip Sorter - applied when there is no sort of any kind. The query can return once it reaches the
LIMIT
requested results. - Partial Range - applied when there is a
SORTBY
numeric field, with no filter or filter by the same numeric field, the query iterate on a range large enough to satisfy theLIMIT
requested results. - Hybrid - applied when there is a
SORTBY
numeric field in addition to another non-numeric filter. Some results will get filtered, and the initial range may not be large enough. The iterator then is rewinded with the following ranges, and an additional iteration takes place to collect theLIMIT
requested results. - No optimization - If there is a sort by score or non-numeric field, there is no other option but to retrieve all results and compare their values.
- Skip Sorter - applied when there is no sort of any kind. The query can return once it reaches the
- #3553 Introduce support for Geo-polygon shapes and queries
-
JSON:
- #916 Introduce the new
JSON.MERGE
in compliance with RFC 7396, supporting:- Creating new attributes on an existing JSON document
- Updating and replacing values in parent and child attributes
- Deleting existing attributes (giving
null
as value) - Array update - replacing an entire array with the new value
- #944 Introduce
JSON.MSET
, supporting atomic multiple sets for keys in the same hash slot
- #916 Introduce the new
Improvements
- Search and Query:
- #3628 Background indexing scanning performance
Changed Behavior
- Search and Query:
- #3355 Expired keys deleted from the slave's index, returning an empty array instead of
nil
- #3355 Expired keys deleted from the slave's index, returning an empty array instead of
Bug Fixes
- Search and Query:
- #3562 Index definition may load several times when using
REPLICAOF
causing a failure - #3557
TIMEOUT
configuration onFT.AGGREGATE
query being ignored - #3606 Update numeric inverted index
numEntries
avoiding excessive memory consumption - #3552
FT.CURSOR READ
onJSON
numeric queries not returning results
- #3562 Index definition may load several times when using
Redis version
Module versions
Recommended Client Libraries
- Java
- Python
- NodeJS
- .NET
- Go
Compatible with the latest RedisInsight. The docker image redis/redis-stack for this version is bundled with RedisInsight 2.26.
Note: version numbers follow the pattern:
x.y.z-b
x.y
Redis major versionz
increases with even numbers as a module x.y version increases.b
denotes a patch to Redis or a module (anyz
of Redis or modules).b
will consist of av
+ numeric value.