From 6ef98e0fb7e3c50781edf00fd8a1492774453a5c Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka Date: Tue, 28 Jan 2025 15:19:31 +0100 Subject: [PATCH 01/20] Draft for the feature sets --- content/develop/feature-sets/7-4 | 58 ++++++++++++++++++++++++++ content/develop/feature-sets/_index.md | 22 ++++++++++ 2 files changed, 80 insertions(+) create mode 100644 content/develop/feature-sets/7-4 create mode 100644 content/develop/feature-sets/_index.md diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 new file mode 100644 index 0000000000..a2e7f51fba --- /dev/null +++ b/content/develop/feature-sets/7-4 @@ -0,0 +1,58 @@ +--- +title: Redis 7.4 +alwaysopen: false +categories: +- docs +- operate +- rs +- rc +description: Highlights of what's new for Redis 7.4 +linkTitle: Redis 7.4 +weight: 10 +--- + +This page highlights the changes and new features introduced in Redis feature set 7.4. + +## Key Changes and New Features + +### Dual Licensing with RSALv2 and SSPLv1 +Redis 7.4 Community Edition is the first version to be dual-licensed under RSALv2 and SSPLv1. It remains free for the community and customers, maintaining permissive usage rights under the dual license. Versions prior to 7.4 are referred to as Redis open source software (OSS). Starting with Redis 7.4, the freely available versions are officially called Redis Community Edition. + +### Set Expiration for Hash Fields +Redis 7.4 introduces the ability to set expiration times for individual hash fields. This long-requested feature enhances memory efficiency and performance for use cases like caching and session storage. + +### New Data Types for Memory-Efficient Vector Databases +To support AI applications and Retrieval Augmented Generation (RAG), Redis 7.4 adds `bfloat16` and `float16` data types, reducing memory usage by up to 47% and latency under load by up to 59%. These optimizations help maximize performance when working with vector data and AI workloads. + +### Simplified Secondary Indexing +Redis Query Engine now offers easier-to-use secondary indexing with the TAG index type: + +- Querying tags with special characters (e.g., @, .) no longer requires escaping. Simply wrap query terms in double quotes. +- Improved handling of empty and missing fields supports more dynamic data models. +- Additional geospatial search capabilities include [INTERSECT](https://redis.io/docs/latest/develop/interact/search-and-query/query/geo-spatial/) and [DISJOIN](https://redis.io/docs/latest/develop/interact/search-and-query/query/geo-spatial/) operators, as well as better memory usage reporting for indexes. + +Check the [release notes](https://github.com/redis-stack/redis-stack/releases/tag/v7.4.0-v0) for more details. + + +### Time Series Optimization with Insertion Filters +Sensors that report small or negligible changes can now use insertion filters to ignore new measurements when differences between time or value are minimal. This reduces time series data size and improves efficiency. + +## Compatibility and Behavior Changes + +### Behavior Changes + +Behavior adjustments in Redis 7.4 include the use of jemalloc instead of libc for allocating Lua VM code, which optimizes memory fragmentation and enhances speed. + +Additionally, changes to the ACL LOAD command now ensure that only clients with affected user configurations are disconnected, minimizing unnecessary disruptions. + +### General changes +Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during public preview. We removed these to make Redis simpler. + +## Component versions +The Redis feature set 7.4 includes the following components: + +- [Redis 7.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisce-7.4-release-notes/) +- [Search 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.10-release-notes/) +- [JSON 2.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.8-release-notes/) +- [Time series 1.12](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.12-release-notes/) +- [Bloom 2.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.8-release-notes/) \ No newline at end of file diff --git a/content/develop/feature-sets/_index.md b/content/develop/feature-sets/_index.md new file mode 100644 index 0000000000..36f57f3282 --- /dev/null +++ b/content/develop/feature-sets/_index.md @@ -0,0 +1,22 @@ +--- +title: Redis feature sets +alwaysopen: false +categories: +- docs +- operate +- rs +- rc +description: Highlights of what's new for Redis feature sets +linkTitle: Redis feature sets +weight: 10 +--- + +A Redis feature set represents the complete set of features available in a specific Redis version. + +Currently, the following Redis feature sets are supported and maintained: + +- Redis feature set [7.4]({{< relref "/develop/feature-sets/7-4" >}}) +- Redis feature set 7.2 +- Redis feature set 6.2 + +To use a new feature introduced in a later feature set, you must upgrade the corresponding components according to the following table. \ No newline at end of file From ae436e22ad3132023f11dbd276c8caef5add4f2e Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:25:40 +0100 Subject: [PATCH 02/20] Update _index.md --- content/develop/feature-sets/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/develop/feature-sets/_index.md b/content/develop/feature-sets/_index.md index 36f57f3282..11169fc9ca 100644 --- a/content/develop/feature-sets/_index.md +++ b/content/develop/feature-sets/_index.md @@ -19,4 +19,4 @@ Currently, the following Redis feature sets are supported and maintained: - Redis feature set 7.2 - Redis feature set 6.2 -To use a new feature introduced in a later feature set, you must upgrade the corresponding components according to the following table. \ No newline at end of file +To use a new feature introduced in a later feature set, you must upgrade the corresponding components included in that feature set. From 3366a45af7103e9949be30a73070be82d40d64e2 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:15:43 +0100 Subject: [PATCH 03/20] Update _index.md --- content/develop/feature-sets/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/develop/feature-sets/_index.md b/content/develop/feature-sets/_index.md index 11169fc9ca..d81777a08e 100644 --- a/content/develop/feature-sets/_index.md +++ b/content/develop/feature-sets/_index.md @@ -13,7 +13,7 @@ weight: 10 A Redis feature set represents the complete set of features available in a specific Redis version. -Currently, the following Redis feature sets are supported and maintained: +The following Redis feature sets are supported and maintained: - Redis feature set [7.4]({{< relref "/develop/feature-sets/7-4" >}}) - Redis feature set 7.2 From cf4a4df2caf0aa933a24e17359a55f9817d32bd1 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:21:28 +0100 Subject: [PATCH 04/20] Update 7-4 --- content/develop/feature-sets/7-4 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 index a2e7f51fba..99995ee218 100644 --- a/content/develop/feature-sets/7-4 +++ b/content/develop/feature-sets/7-4 @@ -33,7 +33,6 @@ Redis Query Engine now offers easier-to-use secondary indexing with the TAG inde Check the [release notes](https://github.com/redis-stack/redis-stack/releases/tag/v7.4.0-v0) for more details. - ### Time Series Optimization with Insertion Filters Sensors that report small or negligible changes can now use insertion filters to ignore new measurements when differences between time or value are minimal. This reduces time series data size and improves efficiency. @@ -55,4 +54,4 @@ The Redis feature set 7.4 includes the following components: - [Search 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.10-release-notes/) - [JSON 2.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.8-release-notes/) - [Time series 1.12](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.12-release-notes/) -- [Bloom 2.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.8-release-notes/) \ No newline at end of file +- [Bloom 2.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.8-release-notes/) From 3a65393abec92a65a91ca7f21c3b19d1032479f6 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:22:19 +0100 Subject: [PATCH 05/20] Update 7-4 --- content/develop/feature-sets/7-4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 index 99995ee218..059b5d79dc 100644 --- a/content/develop/feature-sets/7-4 +++ b/content/develop/feature-sets/7-4 @@ -44,7 +44,7 @@ Behavior adjustments in Redis 7.4 include the use of jemalloc instead of libc fo Additionally, changes to the ACL LOAD command now ensure that only clients with affected user configurations are disconnected, minimizing unnecessary disruptions. -### General changes +### Other changes Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during public preview. We removed these to make Redis simpler. ## Component versions From 8395edb774344b05454d1e8c50c35110e7b0f4be Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:01:13 +0100 Subject: [PATCH 06/20] Update 7-4 --- content/develop/feature-sets/7-4 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 index 059b5d79dc..3d70746444 100644 --- a/content/develop/feature-sets/7-4 +++ b/content/develop/feature-sets/7-4 @@ -15,11 +15,8 @@ This page highlights the changes and new features introduced in Redis feature se ## Key Changes and New Features -### Dual Licensing with RSALv2 and SSPLv1 -Redis 7.4 Community Edition is the first version to be dual-licensed under RSALv2 and SSPLv1. It remains free for the community and customers, maintaining permissive usage rights under the dual license. Versions prior to 7.4 are referred to as Redis open source software (OSS). Starting with Redis 7.4, the freely available versions are officially called Redis Community Edition. - -### Set Expiration for Hash Fields -Redis 7.4 introduces the ability to set expiration times for individual hash fields. This long-requested feature enhances memory efficiency and performance for use cases like caching and session storage. +### Support for hash field expiration +Redis 7.4 introduces the ability to set expiration times or adjust the remaining TTL for individual hash fields. This long-requested feature enhances memory efficiency and performance for use cases like caching and session storage. ### New Data Types for Memory-Efficient Vector Databases To support AI applications and Retrieval Augmented Generation (RAG), Redis 7.4 adds `bfloat16` and `float16` data types, reducing memory usage by up to 47% and latency under load by up to 59%. These optimizations help maximize performance when working with vector data and AI workloads. @@ -34,7 +31,7 @@ Redis Query Engine now offers easier-to-use secondary indexing with the TAG inde Check the [release notes](https://github.com/redis-stack/redis-stack/releases/tag/v7.4.0-v0) for more details. ### Time Series Optimization with Insertion Filters -Sensors that report small or negligible changes can now use insertion filters to ignore new measurements when differences between time or value are minimal. This reduces time series data size and improves efficiency. +Sensors can now use insertion filters to ignore new measurements when differences between time or value are minimal. This reduces time series data size and improves efficiency. ## Compatibility and Behavior Changes @@ -47,6 +44,9 @@ Additionally, changes to the ACL LOAD command now ensure that only clients with ### Other changes Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during public preview. We removed these to make Redis simpler. +### Dual Licensing with RSALv2 and SSPLv1 +Redis 7.4 Community Edition is the first version to be dual-licensed under RSALv2 and SSPLv1. It remains free for the community and customers, maintaining permissive usage rights under the dual license. Versions prior to 7.4 are referred to as Redis open source software (OSS). Starting with Redis 7.4, the freely available versions are officially called Redis Community Edition. + ## Component versions The Redis feature set 7.4 includes the following components: From e63989319e4a1c4f05feb6dc660ed3ad6a3fec04 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:05:45 +0100 Subject: [PATCH 07/20] Update 7-4 --- content/develop/feature-sets/7-4 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 index 3d70746444..612194f960 100644 --- a/content/develop/feature-sets/7-4 +++ b/content/develop/feature-sets/7-4 @@ -41,12 +41,14 @@ Behavior adjustments in Redis 7.4 include the use of jemalloc instead of libc fo Additionally, changes to the ACL LOAD command now ensure that only clients with affected user configurations are disconnected, minimizing unnecessary disruptions. -### Other changes -Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during public preview. We removed these to make Redis simpler. +## Other changes ### Dual Licensing with RSALv2 and SSPLv1 Redis 7.4 Community Edition is the first version to be dual-licensed under RSALv2 and SSPLv1. It remains free for the community and customers, maintaining permissive usage rights under the dual license. Versions prior to 7.4 are referred to as Redis open source software (OSS). Starting with Redis 7.4, the freely available versions are officially called Redis Community Edition. +### Removal of triggers and functions +Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during public preview. We removed these to make Redis simpler. + ## Component versions The Redis feature set 7.4 includes the following components: From 761eada1524c65e227cac8d949ec524b248830e6 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:17:44 +0100 Subject: [PATCH 08/20] Update 7-4 --- content/develop/feature-sets/7-4 | 3 --- 1 file changed, 3 deletions(-) diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 index 612194f960..1037c62444 100644 --- a/content/develop/feature-sets/7-4 +++ b/content/develop/feature-sets/7-4 @@ -43,9 +43,6 @@ Additionally, changes to the ACL LOAD command now ensure that only clients with ## Other changes -### Dual Licensing with RSALv2 and SSPLv1 -Redis 7.4 Community Edition is the first version to be dual-licensed under RSALv2 and SSPLv1. It remains free for the community and customers, maintaining permissive usage rights under the dual license. Versions prior to 7.4 are referred to as Redis open source software (OSS). Starting with Redis 7.4, the freely available versions are officially called Redis Community Edition. - ### Removal of triggers and functions Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during public preview. We removed these to make Redis simpler. From 25adae1efca5c2aae8614ba93caa6d4f165d2171 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Tue, 4 Feb 2025 13:36:38 +0100 Subject: [PATCH 09/20] Update 7-4 --- content/develop/feature-sets/7-4 | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 index 1037c62444..51d198b342 100644 --- a/content/develop/feature-sets/7-4 +++ b/content/develop/feature-sets/7-4 @@ -11,9 +11,9 @@ linkTitle: Redis 7.4 weight: 10 --- -This page highlights the changes and new features introduced in Redis feature set 7.4. +This page highlights the new features and changes introduced in Redis feature set 7.4. -## Key Changes and New Features +## New Features ### Support for hash field expiration Redis 7.4 introduces the ability to set expiration times or adjust the remaining TTL for individual hash fields. This long-requested feature enhances memory efficiency and performance for use cases like caching and session storage. @@ -33,17 +33,14 @@ Check the [release notes](https://github.com/redis-stack/redis-stack/releases/ta ### Time Series Optimization with Insertion Filters Sensors can now use insertion filters to ignore new measurements when differences between time or value are minimal. This reduces time series data size and improves efficiency. -## Compatibility and Behavior Changes +## Changes ### Behavior Changes - Behavior adjustments in Redis 7.4 include the use of jemalloc instead of libc for allocating Lua VM code, which optimizes memory fragmentation and enhances speed. Additionally, changes to the ACL LOAD command now ensure that only clients with affected user configurations are disconnected, minimizing unnecessary disruptions. -## Other changes - -### Removal of triggers and functions +### Other changes Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during public preview. We removed these to make Redis simpler. ## Component versions From 8f68c14ecbe418c3ae9b58de3b822af9b9d1c96e Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka Date: Fri, 14 Feb 2025 10:55:25 +0100 Subject: [PATCH 10/20] Content for 7.2 and 6.2 --- content/develop/feature-sets/6-2 | 58 ++++++++++++++++++++++++ content/develop/feature-sets/7-2 | 75 ++++++++++++++++++++++++++++++++ content/develop/feature-sets/7-4 | 10 ++--- 3 files changed, 138 insertions(+), 5 deletions(-) create mode 100644 content/develop/feature-sets/6-2 create mode 100644 content/develop/feature-sets/7-2 diff --git a/content/develop/feature-sets/6-2 b/content/develop/feature-sets/6-2 new file mode 100644 index 0000000000..88006cb4e9 --- /dev/null +++ b/content/develop/feature-sets/6-2 @@ -0,0 +1,58 @@ +--- +title: Redis 6.2 +alwaysopen: false +categories: +- docs +- operate +- rs +- rc +description: Highlights of what's new for Redis 6.2 +linkTitle: Redis 6.2 +weight: 8 +--- + +This page highlights the new features and changes introduced in Redis feature set 6.2. + +## New features + +### Multi-value indexing and querying +Developers can now index and query multi-value attributes across all field types, including TEXT, TAG, NUMERIC, GEO, and VECTOR. This enhancement allows indexing attributes defined by a JSONPath that leads to an array or multiple scalar values, eliminating the previous limitation of indexing only single scalar attributes. + +### Wildcard query support +Redis Query Engine now supports suffix and infix wildcard search queries for TEXT and TAG fields, improving flexibility in searching and filtering data. + +### T-digest: a new probabilistic data structure for quantile estimation +Redis feature set 6.2 introduces t-digest, a probabilistic data structure designed to estimate quantiles from large datasets or continuous data streams. This is particularly useful for analytics and monitoring applications that require approximate quantile calculations. + +### Retrieve aggregation results for ongoing time series buckets +A new option allows retrieving the latest, still-open time series bucket of compactions. This is useful for scenarios where data retention policies limit access to historical raw data, such as tracking event counts over extended periods. By specifying the `LATEST` option, users can now retrieve partially completed buckets. + +### Time-weighted average aggregator for time series +A new time-weighted average aggregator has been added to provide more accurate average-over-time calculations. This is particularly useful when dealing with time series data with irregular sampling intervals. + +### Gap-filling for time series data +Redis feature set 6.2 now supports gap-filling in time series data, allowing to interpolate missing values or repeat the last known value for empty time buckets. This feature enhances the continuity of time series analytics. + +### Enhanced graph algorithms +Graph introduces new pathfinding algorithms to compute minimal-weight paths, with optional constraints on cost or length. Additionally, new query language constructs allow to add or remove node labels, modify node and edge properties, and delete paths. + +## Changes + +### Behavior changes + +The `SRANDMEMBER` command now returns a RESP3 array instead of a set, aligning with the updated protocol format. The `EXPIRE`, `EXPIREAT`, `SETEX`, and `GETEX` commands will now return an error if the provided expiration time exceeds valid limits, ensuring more reliable expiration handling. Additionally, ACL subcommand validation has been removed when a fully defined command already exists, streamlining access control management. + +### Other changes +Redis feature set 6.2 introduces over 25 new commands, addressing long-standing feature requests. Among the most notable additions, the long-awaited `ZUNION` and `ZINTER` commands now allow direct result retrieval, unlike their counterparts, ZUNIONSTORE and ZINTERSTORE, which only store results. + +Redis streams have also been significantly enhanced. Exclusive range queries are now supported, giving users more precise control over data retrieval. The ability to filter pending messages by idle time improves message management, while a new mechanism simplifies message recovery in consumer groups, making it easier to reclaim lost messages. + +## Component versions +The Redis feature set 6.2 includes the following components: + +- [Redis 6.2](https://github.com/redis/redis/blob/6.2/00-RELEASENOTES) +- [Search 2.6](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.6-release-notes/) +- [JSON 2.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.4-release-notes/) +- [Time series 1.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.8-release-notes/) +- [Bloom 2.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.4-release-notes/) +- [Graph 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.10-release-notes/) \ No newline at end of file diff --git a/content/develop/feature-sets/7-2 b/content/develop/feature-sets/7-2 new file mode 100644 index 0000000000..52c53aa54c --- /dev/null +++ b/content/develop/feature-sets/7-2 @@ -0,0 +1,75 @@ +--- +title: Redis 7.2 +alwaysopen: false +categories: +- docs +- operate +- rs +- rc +description: Highlights of what's new for Redis 7.2 +linkTitle: Redis 7.2 +weight: 9 +--- + +This page highlights the new features and changes introduced in Redis feature set 7.2. + +## New features + +### Geospatial queries with polygon search +Redis Query Engine now provides improved support for querying geospatial data using polygon search. This enhancement allows developers to efficiently filter and retrieve data within complex geographic boundaries. + +For example, in a weather monitoring system, Redis can store geospatial data for extreme weather events such as hurricanes, wildfires, or thunderstorms. When a user defines a geographic area of interest, Redis Query Engine quickly retrieves relevant weather alerts within that region, enabling real-time notifications and faster emergency response. + +### Streamlined data manipulation in JSON +JSON now includes two new commands designed to simplify data manipulation. The `JSON.MERGE` command allows merging a given JSON value into matching paths, enabling more flexible updates. The `JSON.MSET` command provides a way to set or update multiple JSON values simultaneously based on specified key-path-value triplets, improving efficiency when handling structured data. + +### Optional support for RESP3 protocol +Redis 7.2 includes optional RESP3 support, improving response formatting and error handling. + +### Public preview: Triggers and Functions +Redis feature set 7.2 introduces the public preview of Triggers and Functions, an event-driven engine for executing TypeScript/JavaScript code within Redis. This enables efficient in-database data processing, reducing the need for external computation. It also supports cross-shard read operations, which were not available with Lua scripts. + +## Changes + +### Memory and speed optimizations +Redis feature set 7.2 includes significant performance improvements across Redis data types. For example, sorted sets, commonly used for gaming leaderboards, now see performance gains between [30% and 100%](https://redis.io/blog/introducing-redis-7-2/#:~:text=We%20made%20Redis%20more%20powerful%20for%20developers) due to optimizations in processing and memory efficiency. + +Redis Query Engine has also been enhanced with optimized `SORT BY` operations and a new response `FORMAT` in RESP3, improving efficiency and readability. + +### Behavior changes + +#### Script execution enhancemets +Client-side tracking now monitors the actual keys read during script execution rather than relying on declared keys, improving accuracy in key usage tracking. +Blocked commands now re-evaluate security checks before execution, ensuring compliance with updated permissions. +Additionally, ACL failure messages and error codes have been standardized, providing clearer and more consistent error handling. + +#### Client & replication enhancements +TLS-based replication now supports Server Name Indication (SNI), improving compatibility with secure deployments. +Additionally, the `HELLO` command has been refined to modify client state only upon successful execution, ensuring more predictable behavior. + +#### Streams improvements +Consumer tracking has been enhanced with seen-time and active-time metrics, providing better visibility into consumer activity. +The XREADGROUP and X[AUTO]CLAIM commands now create consumers even when no data is read, ensuring consistency in consumer group management. +Additionally, blocked stream commands now return a distinct error when the target key no longer exists, improving error clarity. + +#### Module API changes (potentially breaking) +The `RM_Call` function now enforces out-of-memory (OOM) checks for scripts only when the 'M' flag is set, refining memory management behavior. +Module command names now restrict the use of certain special characters to prevent conflicts. +Replication consistency has been improved for modules utilizing keyspace notifications, ensuring more reliable data synchronization. +Additionally, commands, configurations, and data types can no longer be registered after the `onload` handler has executed. This change enforces a stricter initialization process, ensuring that all module definitions are finalized before execution begins. + +#### Expired keys are now deleted from replica indexes +Expired keys are now deleted from Redis Query Engine replica indexes, ensuring queries return an empty array instead of nil. + +### Other changes +Redis Stack 7.2 no longer includes Graph capabilities. For more details, refer to the [RedisGraph End-of-Life Announcement](https://redis.io/blog/redisgraph-eol/#:~:text=After%20January%2031%2C%202025%2C%20RedisGraph,subscriptions%20until%20January%2031%2C%202024.). + +## Component versions +The Redis feature set 7.2 includes the following components: + +- [Redis 7.2](https://github.com/redis/redis/blob/7.2/00-RELEASENOTES) +- [Search 2.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.8-release-notes/) +- [JSON 2.6](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.6-release-notes/) +- [Time series 1.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.10-release-notes/) +- [Bloom 2.6](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.6-release-notes/) +- [Gears 2.0](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/deprecated-features/triggers-and-functions/) \ No newline at end of file diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 index 51d198b342..6ccbbc19c6 100644 --- a/content/develop/feature-sets/7-4 +++ b/content/develop/feature-sets/7-4 @@ -13,15 +13,15 @@ weight: 10 This page highlights the new features and changes introduced in Redis feature set 7.4. -## New Features +## New features ### Support for hash field expiration Redis 7.4 introduces the ability to set expiration times or adjust the remaining TTL for individual hash fields. This long-requested feature enhances memory efficiency and performance for use cases like caching and session storage. -### New Data Types for Memory-Efficient Vector Databases +### New data types formemory-efficient vector databases To support AI applications and Retrieval Augmented Generation (RAG), Redis 7.4 adds `bfloat16` and `float16` data types, reducing memory usage by up to 47% and latency under load by up to 59%. These optimizations help maximize performance when working with vector data and AI workloads. -### Simplified Secondary Indexing +### Simplified secondary indexing Redis Query Engine now offers easier-to-use secondary indexing with the TAG index type: - Querying tags with special characters (e.g., @, .) no longer requires escaping. Simply wrap query terms in double quotes. @@ -30,12 +30,12 @@ Redis Query Engine now offers easier-to-use secondary indexing with the TAG inde Check the [release notes](https://github.com/redis-stack/redis-stack/releases/tag/v7.4.0-v0) for more details. -### Time Series Optimization with Insertion Filters +### Time series optimization with insertion filters Sensors can now use insertion filters to ignore new measurements when differences between time or value are minimal. This reduces time series data size and improves efficiency. ## Changes -### Behavior Changes +### Behavior changes Behavior adjustments in Redis 7.4 include the use of jemalloc instead of libc for allocating Lua VM code, which optimizes memory fragmentation and enhances speed. Additionally, changes to the ACL LOAD command now ensure that only clients with affected user configurations are disconnected, minimizing unnecessary disruptions. From 6c92b7eb4377dcef94b2c72025b1876b251fec7c Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:27:16 +0100 Subject: [PATCH 11/20] Update 6-2 --- content/develop/feature-sets/6-2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/develop/feature-sets/6-2 b/content/develop/feature-sets/6-2 index 88006cb4e9..dc36324261 100644 --- a/content/develop/feature-sets/6-2 +++ b/content/develop/feature-sets/6-2 @@ -21,7 +21,7 @@ Developers can now index and query multi-value attributes across all field types ### Wildcard query support Redis Query Engine now supports suffix and infix wildcard search queries for TEXT and TAG fields, improving flexibility in searching and filtering data. -### T-digest: a new probabilistic data structure for quantile estimation +### t-digest: a new probabilistic data structure for quantile estimation Redis feature set 6.2 introduces t-digest, a probabilistic data structure designed to estimate quantiles from large datasets or continuous data streams. This is particularly useful for analytics and monitoring applications that require approximate quantile calculations. ### Retrieve aggregation results for ongoing time series buckets @@ -55,4 +55,4 @@ The Redis feature set 6.2 includes the following components: - [JSON 2.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.4-release-notes/) - [Time series 1.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.8-release-notes/) - [Bloom 2.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.4-release-notes/) -- [Graph 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.10-release-notes/) \ No newline at end of file +- [Graph 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.10-release-notes/) From 015a79dbc75d2c899f4cc1a613399f8b67a4c0ad Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:28:41 +0100 Subject: [PATCH 12/20] Update 6-2 --- content/develop/feature-sets/6-2 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/develop/feature-sets/6-2 b/content/develop/feature-sets/6-2 index dc36324261..a43a8e07ef 100644 --- a/content/develop/feature-sets/6-2 +++ b/content/develop/feature-sets/6-2 @@ -22,7 +22,7 @@ Developers can now index and query multi-value attributes across all field types Redis Query Engine now supports suffix and infix wildcard search queries for TEXT and TAG fields, improving flexibility in searching and filtering data. ### t-digest: a new probabilistic data structure for quantile estimation -Redis feature set 6.2 introduces t-digest, a probabilistic data structure designed to estimate quantiles from large datasets or continuous data streams. This is particularly useful for analytics and monitoring applications that require approximate quantile calculations. +Redis introduces t-digest, a probabilistic data structure designed to estimate quantiles from large datasets or continuous data streams. This is particularly useful for analytics and monitoring applications that require approximate quantile calculations. ### Retrieve aggregation results for ongoing time series buckets A new option allows retrieving the latest, still-open time series bucket of compactions. This is useful for scenarios where data retention policies limit access to historical raw data, such as tracking event counts over extended periods. By specifying the `LATEST` option, users can now retrieve partially completed buckets. @@ -31,7 +31,7 @@ A new option allows retrieving the latest, still-open time series bucket of comp A new time-weighted average aggregator has been added to provide more accurate average-over-time calculations. This is particularly useful when dealing with time series data with irregular sampling intervals. ### Gap-filling for time series data -Redis feature set 6.2 now supports gap-filling in time series data, allowing to interpolate missing values or repeat the last known value for empty time buckets. This feature enhances the continuity of time series analytics. +Redis now supports gap-filling in time series data, allowing to interpolate missing values or repeat the last known value for empty time buckets. This feature enhances the continuity of time series analytics. ### Enhanced graph algorithms Graph introduces new pathfinding algorithms to compute minimal-weight paths, with optional constraints on cost or length. Additionally, new query language constructs allow to add or remove node labels, modify node and edge properties, and delete paths. @@ -43,7 +43,7 @@ Graph introduces new pathfinding algorithms to compute minimal-weight paths, wit The `SRANDMEMBER` command now returns a RESP3 array instead of a set, aligning with the updated protocol format. The `EXPIRE`, `EXPIREAT`, `SETEX`, and `GETEX` commands will now return an error if the provided expiration time exceeds valid limits, ensuring more reliable expiration handling. Additionally, ACL subcommand validation has been removed when a fully defined command already exists, streamlining access control management. ### Other changes -Redis feature set 6.2 introduces over 25 new commands, addressing long-standing feature requests. Among the most notable additions, the long-awaited `ZUNION` and `ZINTER` commands now allow direct result retrieval, unlike their counterparts, ZUNIONSTORE and ZINTERSTORE, which only store results. +Redis introduces over 25 new commands, addressing long-standing feature requests. Among the most notable additions, the long-awaited `ZUNION` and `ZINTER` commands now allow direct result retrieval, unlike their counterparts, ZUNIONSTORE and ZINTERSTORE, which only store results. Redis streams have also been significantly enhanced. Exclusive range queries are now supported, giving users more precise control over data retrieval. The ability to filter pending messages by idle time improves message management, while a new mechanism simplifies message recovery in consumer groups, making it easier to reclaim lost messages. From 7a129b4413aa94815f1618a50874330fb12ec637 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:29:27 +0100 Subject: [PATCH 13/20] Update 7-2 --- content/develop/feature-sets/7-2 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/develop/feature-sets/7-2 b/content/develop/feature-sets/7-2 index 52c53aa54c..9f6ef2dc84 100644 --- a/content/develop/feature-sets/7-2 +++ b/content/develop/feature-sets/7-2 @@ -24,15 +24,15 @@ For example, in a weather monitoring system, Redis can store geospatial data for JSON now includes two new commands designed to simplify data manipulation. The `JSON.MERGE` command allows merging a given JSON value into matching paths, enabling more flexible updates. The `JSON.MSET` command provides a way to set or update multiple JSON values simultaneously based on specified key-path-value triplets, improving efficiency when handling structured data. ### Optional support for RESP3 protocol -Redis 7.2 includes optional RESP3 support, improving response formatting and error handling. +Redis includes optional RESP3 support, improving response formatting and error handling. ### Public preview: Triggers and Functions -Redis feature set 7.2 introduces the public preview of Triggers and Functions, an event-driven engine for executing TypeScript/JavaScript code within Redis. This enables efficient in-database data processing, reducing the need for external computation. It also supports cross-shard read operations, which were not available with Lua scripts. +Redis introduces the public preview of Triggers and Functions, an event-driven engine for executing TypeScript/JavaScript code within Redis. This enables efficient in-database data processing, reducing the need for external computation. It also supports cross-shard read operations, which were not available with Lua scripts. ## Changes ### Memory and speed optimizations -Redis feature set 7.2 includes significant performance improvements across Redis data types. For example, sorted sets, commonly used for gaming leaderboards, now see performance gains between [30% and 100%](https://redis.io/blog/introducing-redis-7-2/#:~:text=We%20made%20Redis%20more%20powerful%20for%20developers) due to optimizations in processing and memory efficiency. +Redis includes significant performance improvements across Redis data types. For example, sorted sets, commonly used for gaming leaderboards, now see performance gains between [30% and 100%](https://redis.io/blog/introducing-redis-7-2/#:~:text=We%20made%20Redis%20more%20powerful%20for%20developers) due to optimizations in processing and memory efficiency. Redis Query Engine has also been enhanced with optimized `SORT BY` operations and a new response `FORMAT` in RESP3, improving efficiency and readability. @@ -72,4 +72,4 @@ The Redis feature set 7.2 includes the following components: - [JSON 2.6](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.6-release-notes/) - [Time series 1.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.10-release-notes/) - [Bloom 2.6](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.6-release-notes/) -- [Gears 2.0](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/deprecated-features/triggers-and-functions/) \ No newline at end of file +- [Gears 2.0](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/deprecated-features/triggers-and-functions/) From e4c548e1cd4213187c1af82f145d15e13261772d Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:32:10 +0100 Subject: [PATCH 14/20] Update 6-2 --- content/develop/feature-sets/6-2 | 3 --- 1 file changed, 3 deletions(-) diff --git a/content/develop/feature-sets/6-2 b/content/develop/feature-sets/6-2 index a43a8e07ef..89c01ff930 100644 --- a/content/develop/feature-sets/6-2 +++ b/content/develop/feature-sets/6-2 @@ -33,9 +33,6 @@ A new time-weighted average aggregator has been added to provide more accurate a ### Gap-filling for time series data Redis now supports gap-filling in time series data, allowing to interpolate missing values or repeat the last known value for empty time buckets. This feature enhances the continuity of time series analytics. -### Enhanced graph algorithms -Graph introduces new pathfinding algorithms to compute minimal-weight paths, with optional constraints on cost or length. Additionally, new query language constructs allow to add or remove node labels, modify node and edge properties, and delete paths. - ## Changes ### Behavior changes From 103a099ec90fccdd0b6a971855e25ffdfe25ccff Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:32:57 +0100 Subject: [PATCH 15/20] Update 6-2 --- content/develop/feature-sets/6-2 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/content/develop/feature-sets/6-2 b/content/develop/feature-sets/6-2 index 89c01ff930..e53545bafb 100644 --- a/content/develop/feature-sets/6-2 +++ b/content/develop/feature-sets/6-2 @@ -34,12 +34,6 @@ A new time-weighted average aggregator has been added to provide more accurate a Redis now supports gap-filling in time series data, allowing to interpolate missing values or repeat the last known value for empty time buckets. This feature enhances the continuity of time series analytics. ## Changes - -### Behavior changes - -The `SRANDMEMBER` command now returns a RESP3 array instead of a set, aligning with the updated protocol format. The `EXPIRE`, `EXPIREAT`, `SETEX`, and `GETEX` commands will now return an error if the provided expiration time exceeds valid limits, ensuring more reliable expiration handling. Additionally, ACL subcommand validation has been removed when a fully defined command already exists, streamlining access control management. - -### Other changes Redis introduces over 25 new commands, addressing long-standing feature requests. Among the most notable additions, the long-awaited `ZUNION` and `ZINTER` commands now allow direct result retrieval, unlike their counterparts, ZUNIONSTORE and ZINTERSTORE, which only store results. Redis streams have also been significantly enhanced. Exclusive range queries are now supported, giving users more precise control over data retrieval. The ability to filter pending messages by idle time improves message management, while a new mechanism simplifies message recovery in consumer groups, making it easier to reclaim lost messages. From 5b8cf2da08715d580e60d81c2fefb84bab668157 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:34:36 +0100 Subject: [PATCH 16/20] Update 7-2 --- content/develop/feature-sets/7-2 | 3 --- 1 file changed, 3 deletions(-) diff --git a/content/develop/feature-sets/7-2 b/content/develop/feature-sets/7-2 index 9f6ef2dc84..5768196774 100644 --- a/content/develop/feature-sets/7-2 +++ b/content/develop/feature-sets/7-2 @@ -23,9 +23,6 @@ For example, in a weather monitoring system, Redis can store geospatial data for ### Streamlined data manipulation in JSON JSON now includes two new commands designed to simplify data manipulation. The `JSON.MERGE` command allows merging a given JSON value into matching paths, enabling more flexible updates. The `JSON.MSET` command provides a way to set or update multiple JSON values simultaneously based on specified key-path-value triplets, improving efficiency when handling structured data. -### Optional support for RESP3 protocol -Redis includes optional RESP3 support, improving response formatting and error handling. - ### Public preview: Triggers and Functions Redis introduces the public preview of Triggers and Functions, an event-driven engine for executing TypeScript/JavaScript code within Redis. This enables efficient in-database data processing, reducing the need for external computation. It also supports cross-shard read operations, which were not available with Lua scripts. From 543576495d93a034f6150ef8a6f21e92196084e9 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka Date: Thu, 13 Mar 2025 18:19:48 +0100 Subject: [PATCH 17/20] Adding changes to the structure --- content/develop/feature-sets/6-2 | 30 +++++++++++------- content/develop/feature-sets/7-2 | 54 +++++++++++++++----------------- content/develop/feature-sets/7-4 | 31 ++++++++---------- 3 files changed, 57 insertions(+), 58 deletions(-) diff --git a/content/develop/feature-sets/6-2 b/content/develop/feature-sets/6-2 index e53545bafb..79684aa332 100644 --- a/content/develop/feature-sets/6-2 +++ b/content/develop/feature-sets/6-2 @@ -11,39 +11,45 @@ linkTitle: Redis 6.2 weight: 8 --- -This page highlights the new features and changes introduced in Redis feature set 6.2. +Redis version 6.2 introduces new capabilities designed to improve data indexing, querying, and analytics. This update brings multi-value indexing, expanded wildcard query support, and a new probabilistic data structure for quantile estimation. Additionally, significant enhancements to Redis Streams and time series data processing offer greater flexibility for developers working with real-time and historical datasets. Over 25 new commands have been added, addressing key feature requests and further extending Redis' functionality. +Below is a detailed breakdown of these improvements. ## New features ### Multi-value indexing and querying -Developers can now index and query multi-value attributes across all field types, including TEXT, TAG, NUMERIC, GEO, and VECTOR. This enhancement allows indexing attributes defined by a JSONPath that leads to an array or multiple scalar values, eliminating the previous limitation of indexing only single scalar attributes. +Redis now supports indexing and querying multi-value attributes across all field types, including `TEXT`, `TAG`, `NUMERIC`, `GEO`, and `VECTOR`. Developers can define JSONPath expressions leading to arrays or multiple scalar values, overcoming the previous limitation of indexing only single scalar attributes. ### Wildcard query support -Redis Query Engine now supports suffix and infix wildcard search queries for TEXT and TAG fields, improving flexibility in searching and filtering data. +The Redis Query Engine now enables suffix and infix wildcard searches for `TEXT` and `TAG` fields. This enhancement provides greater flexibility in data retrieval and filtering. ### t-digest: a new probabilistic data structure for quantile estimation -Redis introduces t-digest, a probabilistic data structure designed to estimate quantiles from large datasets or continuous data streams. This is particularly useful for analytics and monitoring applications that require approximate quantile calculations. +Redis introduces t-digest, an advanced probabilistic data structure that efficiently estimates quantiles in large datasets or continuous data streams. This is particularly beneficial for analytics and monitoring applications where precise quantile calculations are required. ### Retrieve aggregation results for ongoing time series buckets -A new option allows retrieving the latest, still-open time series bucket of compactions. This is useful for scenarios where data retention policies limit access to historical raw data, such as tracking event counts over extended periods. By specifying the `LATEST` option, users can now retrieve partially completed buckets. +A new feature allows users to retrieve the latest, still-open time series buckets during compaction. This is particularly useful when dealing with retention policies that limit access to raw historical data, enabling real-time insights into event counts over extended periods. ### Time-weighted average aggregator for time series -A new time-weighted average aggregator has been added to provide more accurate average-over-time calculations. This is particularly useful when dealing with time series data with irregular sampling intervals. +Redis now includes a time-weighted average aggregator, improving accuracy in average-over-time calculations. This feature is especially valuable for time series data with irregular sampling intervals. ### Gap-filling for time series data -Redis now supports gap-filling in time series data, allowing to interpolate missing values or repeat the last known value for empty time buckets. This feature enhances the continuity of time series analytics. +To improve time series analytics, Redis introduces gap-filling capabilities. This feature allows interpolation of missing values or repetition of the last known value for empty time buckets, ensuring continuity in time series analysis. -## Changes -Redis introduces over 25 new commands, addressing long-standing feature requests. Among the most notable additions, the long-awaited `ZUNION` and `ZINTER` commands now allow direct result retrieval, unlike their counterparts, ZUNIONSTORE and ZINTERSTORE, which only store results. +## Improvements +### Existing data structures +Redis 6.2 introduces over 25 new commands, fulfilling long-standing community requests. Notably: -Redis streams have also been significantly enhanced. Exclusive range queries are now supported, giving users more precise control over data retrieval. The ability to filter pending messages by idle time improves message management, while a new mechanism simplifies message recovery in consumer groups, making it easier to reclaim lost messages. +- The long-awaited `ZUNION` and `ZINTER` commands now allow direct retrieval of results, unlike `ZUNIONSTORE` and `ZINTERSTORE`, which store results in a key. +- Redis Streams enhancements include: + - Support for exclusive range queries, providing finer control over data retrieval. + - The ability to filter pending messages based on idle time, improving message management. + - A simplified mechanism for recovering lost messages in consumer groups, making message reclamation more efficient. ## Component versions -The Redis feature set 6.2 includes the following components: +The Redis version 6.2 is built upon the following component versions: - [Redis 6.2](https://github.com/redis/redis/blob/6.2/00-RELEASENOTES) - [Search 2.6](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.6-release-notes/) - [JSON 2.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.4-release-notes/) - [Time series 1.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.8-release-notes/) - [Bloom 2.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.4-release-notes/) -- [Graph 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.10-release-notes/) +- [Graph 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.10-release-notes/) \ No newline at end of file diff --git a/content/develop/feature-sets/7-2 b/content/develop/feature-sets/7-2 index 5768196774..49fedc9de7 100644 --- a/content/develop/feature-sets/7-2 +++ b/content/develop/feature-sets/7-2 @@ -11,58 +11,56 @@ linkTitle: Redis 7.2 weight: 9 --- -This page highlights the new features and changes introduced in Redis feature set 7.2. +Redis version 7.2 introduces new capabilities, including improved geospatial queries, streamlined JSON data manipulation, and the public preview of Triggers and Functions for event-driven processing. Performance optimizations, client-side enhancements, and behavioral refinements further improve Redis' efficiency, security, and usability. +Below is a detailed breakdown of these updates. ## New features ### Geospatial queries with polygon search -Redis Query Engine now provides improved support for querying geospatial data using polygon search. This enhancement allows developers to efficiently filter and retrieve data within complex geographic boundaries. +Redis Query Engine now supports querying geospatial data using polygon search, enabling developers to efficiently filter and retrieve data within complex geographic boundaries. For example, in a weather monitoring system, Redis can store geospatial data for extreme weather events such as hurricanes, wildfires, or thunderstorms. When a user defines a geographic area of interest, Redis Query Engine quickly retrieves relevant weather alerts within that region, enabling real-time notifications and faster emergency response. ### Streamlined data manipulation in JSON -JSON now includes two new commands designed to simplify data manipulation. The `JSON.MERGE` command allows merging a given JSON value into matching paths, enabling more flexible updates. The `JSON.MSET` command provides a way to set or update multiple JSON values simultaneously based on specified key-path-value triplets, improving efficiency when handling structured data. +JSON now includes two new commands for improved data handling: + +- `JSON.MERGE`: Merges a given JSON value into matching paths, allowing more flexible updates. +- `JSON.MSET`: Sets or updates multiple JSON values simultaneously based on specified key-path-value triplets, improving efficiency when handling structured data. ### Public preview: Triggers and Functions -Redis introduces the public preview of Triggers and Functions, an event-driven engine for executing TypeScript/JavaScript code within Redis. This enables efficient in-database data processing, reducing the need for external computation. It also supports cross-shard read operations, which were not available with Lua scripts. +Redis introduces the public preview of Triggers and Functions, an event-driven engine for executing TypeScript/JavaScript code within Redis. This feature enables efficient in-database data processing, reducing reliance on external computation. It also supports cross-shard read operations, which were previously unavailable with Lua scripts. -## Changes +## Improvements +### Existing data structures +Significant performance improvements have been made across Redis data types. Sorted sets, commonly used for gaming leaderboards, now see performance improvements ranging from [30% to 100%](https://redis.io/blog/introducing-redis-7-2/#:~:text=We%20made%20Redis%20more%20powerful%20for%20developers). -### Memory and speed optimizations -Redis includes significant performance improvements across Redis data types. For example, sorted sets, commonly used for gaming leaderboards, now see performance gains between [30% and 100%](https://redis.io/blog/introducing-redis-7-2/#:~:text=We%20made%20Redis%20more%20powerful%20for%20developers) due to optimizations in processing and memory efficiency. +Additionally, Redis stream consumer tracking has been enhanced to provide better visibility into consumer activity, and blocked stream commands now return a distinct error when the target key no longer exists. -Redis Query Engine has also been enhanced with optimized `SORT BY` operations and a new response `FORMAT` in RESP3, improving efficiency and readability. +### Redis Query Engine improvements +The Redis Query Engine has received several updates, including optimized `SORT BY` operations and the addition of a new `FORMAT` response in RESP3, improving both efficiency and readability. -### Behavior changes +### Script execution enhancemets +Client-side tracking now monitors actual keys read during script execution, improving key usage tracking accuracy. Additionally, blocked commands will re-evaluate security checks before execution, ensuring compliance with updated permissions. Standardized ACL failure messages and error codes now provide clearer error handling. -#### Script execution enhancemets -Client-side tracking now monitors the actual keys read during script execution rather than relying on declared keys, improving accuracy in key usage tracking. -Blocked commands now re-evaluate security checks before execution, ensuring compliance with updated permissions. -Additionally, ACL failure messages and error codes have been standardized, providing clearer and more consistent error handling. +### Client and replication enhancements +TLS-based replication now supports Server Name Indication (SNI) to improve compatibility with secure deployments. The `HELLO` command behavior has also been refined to modify client state only upon successful execution, ensuring more predictable client behavior. -#### Client & replication enhancements -TLS-based replication now supports Server Name Indication (SNI), improving compatibility with secure deployments. -Additionally, the `HELLO` command has been refined to modify client state only upon successful execution, ensuring more predictable behavior. -#### Streams improvements -Consumer tracking has been enhanced with seen-time and active-time metrics, providing better visibility into consumer activity. -The XREADGROUP and X[AUTO]CLAIM commands now create consumers even when no data is read, ensuring consistency in consumer group management. -Additionally, blocked stream commands now return a distinct error when the target key no longer exists, improving error clarity. +## Changes + +### Backward-incompatible changes +Redis 7.2 introduces several backward-incompatible changes. Lua scripts no longer support the print() function, blocking of `PFCOUNT` and `PUBLISH` in read-only scripts, and time sampling freezing during command execution. Error handling updates include case changes in error responses, new behavior for `ZPOPMIN/ZPOPMAX` with count 0, and adjustments to `XCLAIM/XAUTOCLAIM`. ACL changes affect command categorization and key access permissions, while command introspection now includes per-subcommand stats. Redis now allows certain CONFIG commands during loading and tracks stats only when commands execute. -#### Module API changes (potentially breaking) -The `RM_Call` function now enforces out-of-memory (OOM) checks for scripts only when the 'M' flag is set, refining memory management behavior. -Module command names now restrict the use of certain special characters to prevent conflicts. -Replication consistency has been improved for modules utilizing keyspace notifications, ensuring more reliable data synchronization. -Additionally, commands, configurations, and data types can no longer be registered after the `onload` handler has executed. This change enforces a stricter initialization process, ensuring that all module definitions are finalized before execution begins. +For more details, see [Redis 7.2 Breaking Changes](https://redis.io/docs/latest/embeds/r7.2-breaking-changes/). -#### Expired keys are now deleted from replica indexes -Expired keys are now deleted from Redis Query Engine replica indexes, ensuring queries return an empty array instead of nil. +### Expired keys are now deleted from replica indexes +Expired keys are now deleted from Redis Query Engine replica indexes, ensuring that queries return an empty array rather than nil when the data no longer exists. ### Other changes Redis Stack 7.2 no longer includes Graph capabilities. For more details, refer to the [RedisGraph End-of-Life Announcement](https://redis.io/blog/redisgraph-eol/#:~:text=After%20January%2031%2C%202025%2C%20RedisGraph,subscriptions%20until%20January%2031%2C%202024.). ## Component versions -The Redis feature set 7.2 includes the following components: +The Redis version 7.2 includes the following components: - [Redis 7.2](https://github.com/redis/redis/blob/7.2/00-RELEASENOTES) - [Search 2.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.8-release-notes/) diff --git a/content/develop/feature-sets/7-4 b/content/develop/feature-sets/7-4 index 6ccbbc19c6..b2fc38ad6c 100644 --- a/content/develop/feature-sets/7-4 +++ b/content/develop/feature-sets/7-4 @@ -11,40 +11,35 @@ linkTitle: Redis 7.4 weight: 10 --- -This page highlights the new features and changes introduced in Redis feature set 7.4. +Redis 7.4 introduces several new features and improvements aimed at enhancing memory efficiency, performance, and ease of use for various applications. These updates include support for hash field expiration, new memory-efficient data types for AI workloads, simplified secondary indexing, and time series optimizations. Additionally, Redis 7.4 brings several behavior and component changes. ## New features -### Support for hash field expiration -Redis 7.4 introduces the ability to set expiration times or adjust the remaining TTL for individual hash fields. This long-requested feature enhances memory efficiency and performance for use cases like caching and session storage. +### Hash field expiration support -### New data types formemory-efficient vector databases -To support AI applications and Retrieval Augmented Generation (RAG), Redis 7.4 adds `bfloat16` and `float16` data types, reducing memory usage by up to 47% and latency under load by up to 59%. These optimizations help maximize performance when working with vector data and AI workloads. +Redis 7.4 adds the ability to set expiration times for individual hash fields or adjust their remaining TTL. This feature, long-requested by users, improves memory efficiency and performance, especially in caching and session storage scenarios. -### Simplified secondary indexing -Redis Query Engine now offers easier-to-use secondary indexing with the TAG index type: +### New memory-efficient data types for AI workloads +With the growing demand for AI applications, Redis 7.4 introduces `bfloat16` and `float16` data types. These new types reduce memory usage by up to 47% and lower latency by as much as 59% under load, making them ideal for vector databases and Retrieval Augmented Generation (RAG) applications. -- Querying tags with special characters (e.g., @, .) no longer requires escaping. Simply wrap query terms in double quotes. -- Improved handling of empty and missing fields supports more dynamic data models. -- Additional geospatial search capabilities include [INTERSECT](https://redis.io/docs/latest/develop/interact/search-and-query/query/geo-spatial/) and [DISJOIN](https://redis.io/docs/latest/develop/interact/search-and-query/query/geo-spatial/) operators, as well as better memory usage reporting for indexes. +### Time series optimization with insertion filters +Redis 7.4 introduces insertion filters for time series data, allowing sensors to ignore new measurements when the differences in time or value are minimal. This feature helps reduce the size of time series data and boosts efficiency. -Check the [release notes](https://github.com/redis-stack/redis-stack/releases/tag/v7.4.0-v0) for more details. +## Improvements -### Time series optimization with insertion filters -Sensors can now use insertion filters to ignore new measurements when differences between time or value are minimal. This reduces time series data size and improves efficiency. +### Simplified secondary indexing +The Redis Query Engine now offers a more straightforward approach to secondary indexing with the addition of the `TAG` index type. Querying tags with special characters (like `@` and `.`) is easier, as it no longer requires escaping; simply wrap query terms in double quotes. The update also includes improved handling of empty and missing fields, making the data model more flexible. Geospatial search has been enhanced with new operators, such as `INTERSECT` and `DISJOIN`, and memory usage reporting for indexes has been improved. ## Changes ### Behavior changes -Behavior adjustments in Redis 7.4 include the use of jemalloc instead of libc for allocating Lua VM code, which optimizes memory fragmentation and enhances speed. - -Additionally, changes to the ACL LOAD command now ensure that only clients with affected user configurations are disconnected, minimizing unnecessary disruptions. +Redis 7.4 includes behavior changes such as using jemalloc instead of libc for allocating Lua VM code. This adjustment reduces memory fragmentation and improves performance. Additionally, the `ACL LOAD` command has been modified to ensure that only clients with affected user configurations are disconnected, reducing unnecessary disruptions. ### Other changes -Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during public preview. We removed these to make Redis simpler. +Redis Stack 7.4 no longer includes Triggers and Functions due to low adoption during its public preview. This removal simplifies Redis and ensures that resources are focused on the most widely used features. ## Component versions -The Redis feature set 7.4 includes the following components: +The Redis version 7.4 includes the following components: - [Redis 7.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisce-7.4-release-notes/) - [Search 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.10-release-notes/) From 84f98b8672b234b593d08c2e8feb451be476abcb Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka Date: Thu, 13 Mar 2025 18:26:59 +0100 Subject: [PATCH 18/20] Updating the index page --- content/develop/feature-sets/_index.md | 22 ------------------- .../{feature-sets => redis-versions}/6-2 | 0 .../{feature-sets => redis-versions}/7-2 | 0 .../{feature-sets => redis-versions}/7-4 | 0 content/develop/redis-versions/_index.md | 22 +++++++++++++++++++ 5 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 content/develop/feature-sets/_index.md rename content/develop/{feature-sets => redis-versions}/6-2 (100%) rename content/develop/{feature-sets => redis-versions}/7-2 (100%) rename content/develop/{feature-sets => redis-versions}/7-4 (100%) create mode 100644 content/develop/redis-versions/_index.md diff --git a/content/develop/feature-sets/_index.md b/content/develop/feature-sets/_index.md deleted file mode 100644 index d81777a08e..0000000000 --- a/content/develop/feature-sets/_index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Redis feature sets -alwaysopen: false -categories: -- docs -- operate -- rs -- rc -description: Highlights of what's new for Redis feature sets -linkTitle: Redis feature sets -weight: 10 ---- - -A Redis feature set represents the complete set of features available in a specific Redis version. - -The following Redis feature sets are supported and maintained: - -- Redis feature set [7.4]({{< relref "/develop/feature-sets/7-4" >}}) -- Redis feature set 7.2 -- Redis feature set 6.2 - -To use a new feature introduced in a later feature set, you must upgrade the corresponding components included in that feature set. diff --git a/content/develop/feature-sets/6-2 b/content/develop/redis-versions/6-2 similarity index 100% rename from content/develop/feature-sets/6-2 rename to content/develop/redis-versions/6-2 diff --git a/content/develop/feature-sets/7-2 b/content/develop/redis-versions/7-2 similarity index 100% rename from content/develop/feature-sets/7-2 rename to content/develop/redis-versions/7-2 diff --git a/content/develop/feature-sets/7-4 b/content/develop/redis-versions/7-4 similarity index 100% rename from content/develop/feature-sets/7-4 rename to content/develop/redis-versions/7-4 diff --git a/content/develop/redis-versions/_index.md b/content/develop/redis-versions/_index.md new file mode 100644 index 0000000000..2b9496a913 --- /dev/null +++ b/content/develop/redis-versions/_index.md @@ -0,0 +1,22 @@ +--- +title: Redis versions +alwaysopen: false +categories: +- docs +- operate +- rs +- rc +description: Highlights of what's new for Redis versions +linkTitle: Redis versions +weight: 10 +--- + +A Redis version represents the complete set of features available in a specific Redis version. + +The following Redis versions are supported and maintained: + +- Redis version [7.4]({{< relref "/develop/redis-versions/7-4" >}}) +- Redis version [7.2]({{< relref "/develop/redis-versions/7-2" >}}) +- Redis version [6.2]({{< relref "/develop/redis-versions/6-2" >}}) + +To use a new feature introduced in a later Redis version, you must upgrade the corresponding components included in that Redis version. From 1fd7698a2908955c8fe928d999bc9e9688e4185a Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka Date: Mon, 17 Mar 2025 13:36:05 +0100 Subject: [PATCH 19/20] Updating according to the feedback --- content/develop/redis-versions/6-2 | 4 ++-- content/develop/redis-versions/7-2 | 8 +++----- content/develop/redis-versions/7-4 | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/content/develop/redis-versions/6-2 b/content/develop/redis-versions/6-2 index 79684aa332..1f9601a066 100644 --- a/content/develop/redis-versions/6-2 +++ b/content/develop/redis-versions/6-2 @@ -23,10 +23,10 @@ Redis now supports indexing and querying multi-value attributes across all field The Redis Query Engine now enables suffix and infix wildcard searches for `TEXT` and `TAG` fields. This enhancement provides greater flexibility in data retrieval and filtering. ### t-digest: a new probabilistic data structure for quantile estimation -Redis introduces t-digest, an advanced probabilistic data structure that efficiently estimates quantiles in large datasets or continuous data streams. This is particularly beneficial for analytics and monitoring applications where precise quantile calculations are required. +Redis introduces t-digest, an advanced probabilistic data structure that efficiently estimates quantiles in large datasets or continuous data streams. This is particularly beneficial for analytics and monitoring applications where quantile calculations are required. ### Retrieve aggregation results for ongoing time series buckets -A new feature allows users to retrieve the latest, still-open time series buckets during compaction. This is particularly useful when dealing with retention policies that limit access to raw historical data, enabling real-time insights into event counts over extended periods. +A new feature allows users to retrieve the latest, still-open time series buckets during compaction. ### Time-weighted average aggregator for time series Redis now includes a time-weighted average aggregator, improving accuracy in average-over-time calculations. This feature is especially valuable for time series data with irregular sampling intervals. diff --git a/content/develop/redis-versions/7-2 b/content/develop/redis-versions/7-2 index 49fedc9de7..a6a27a0588 100644 --- a/content/develop/redis-versions/7-2 +++ b/content/develop/redis-versions/7-2 @@ -11,7 +11,7 @@ linkTitle: Redis 7.2 weight: 9 --- -Redis version 7.2 introduces new capabilities, including improved geospatial queries, streamlined JSON data manipulation, and the public preview of Triggers and Functions for event-driven processing. Performance optimizations, client-side enhancements, and behavioral refinements further improve Redis' efficiency, security, and usability. +Redis version 7.2 introduces new capabilities, including improved geospatial queries, streamlined JSON data manipulation, and the public preview of Triggers and Functions for event-driven processing (not included in 7.4 and later). Performance optimizations, client-side enhancements, and behavioral refinements further improve Redis' efficiency, security, and usability. Below is a detailed breakdown of these updates. ## New features @@ -19,15 +19,13 @@ Below is a detailed breakdown of these updates. ### Geospatial queries with polygon search Redis Query Engine now supports querying geospatial data using polygon search, enabling developers to efficiently filter and retrieve data within complex geographic boundaries. -For example, in a weather monitoring system, Redis can store geospatial data for extreme weather events such as hurricanes, wildfires, or thunderstorms. When a user defines a geographic area of interest, Redis Query Engine quickly retrieves relevant weather alerts within that region, enabling real-time notifications and faster emergency response. - ### Streamlined data manipulation in JSON JSON now includes two new commands for improved data handling: - `JSON.MERGE`: Merges a given JSON value into matching paths, allowing more flexible updates. - `JSON.MSET`: Sets or updates multiple JSON values simultaneously based on specified key-path-value triplets, improving efficiency when handling structured data. -### Public preview: Triggers and Functions +### Public preview: Triggers and Functions (not included in 7.4 and later) Redis introduces the public preview of Triggers and Functions, an event-driven engine for executing TypeScript/JavaScript code within Redis. This feature enables efficient in-database data processing, reducing reliance on external computation. It also supports cross-shard read operations, which were previously unavailable with Lua scripts. ## Improvements @@ -48,7 +46,7 @@ TLS-based replication now supports Server Name Indication (SNI) to improve compa ## Changes -### Backward-incompatible changes +### Breaking changes Redis 7.2 introduces several backward-incompatible changes. Lua scripts no longer support the print() function, blocking of `PFCOUNT` and `PUBLISH` in read-only scripts, and time sampling freezing during command execution. Error handling updates include case changes in error responses, new behavior for `ZPOPMIN/ZPOPMAX` with count 0, and adjustments to `XCLAIM/XAUTOCLAIM`. ACL changes affect command categorization and key access permissions, while command introspection now includes per-subcommand stats. Redis now allows certain CONFIG commands during loading and tracks stats only when commands execute. For more details, see [Redis 7.2 Breaking Changes](https://redis.io/docs/latest/embeds/r7.2-breaking-changes/). diff --git a/content/develop/redis-versions/7-4 b/content/develop/redis-versions/7-4 index b2fc38ad6c..6d082151e7 100644 --- a/content/develop/redis-versions/7-4 +++ b/content/develop/redis-versions/7-4 @@ -20,7 +20,7 @@ Redis 7.4 introduces several new features and improvements aimed at enhancing me Redis 7.4 adds the ability to set expiration times for individual hash fields or adjust their remaining TTL. This feature, long-requested by users, improves memory efficiency and performance, especially in caching and session storage scenarios. ### New memory-efficient data types for AI workloads -With the growing demand for AI applications, Redis 7.4 introduces `bfloat16` and `float16` data types. These new types reduce memory usage by up to 47% and lower latency by as much as 59% under load, making them ideal for vector databases and Retrieval Augmented Generation (RAG) applications. +With the growing demand for AI applications, Redis 7.4 introduces `bfloat16` and `float16` data types. These new types reduce memory usage by up to 47% and lower latency by as much as 59% under load, making them ideal for storing and processing vector embeddings in AI-powered applications, including vector databases and Retrieval Augmented Generation (RAG) systems. ### Time series optimization with insertion filters Redis 7.4 introduces insertion filters for time series data, allowing sensors to ignore new measurements when the differences in time or value are minimal. This feature helps reduce the size of time series data and boosts efficiency. From 2ef3114fb1eac87df5fa0c234254187dd8302ef3 Mon Sep 17 00:00:00 2001 From: ViktarStarastsenka <99594890+ViktarStarastsenka@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:01:34 +0100 Subject: [PATCH 20/20] Update 6-2 --- content/develop/redis-versions/6-2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/develop/redis-versions/6-2 b/content/develop/redis-versions/6-2 index 1f9601a066..4169064917 100644 --- a/content/develop/redis-versions/6-2 +++ b/content/develop/redis-versions/6-2 @@ -42,7 +42,7 @@ Redis 6.2 introduces over 25 new commands, fulfilling long-standing community re - Redis Streams enhancements include: - Support for exclusive range queries, providing finer control over data retrieval. - The ability to filter pending messages based on idle time, improving message management. - - A simplified mechanism for recovering lost messages in consumer groups, making message reclamation more efficient. + - A new mechanism to automatically claim pending messages from a stream consumer group, transferring ownership of messages that have exceeded their idle timeout to a new consumer without requiring manual acknowledgment. ## Component versions The Redis version 6.2 is built upon the following component versions: @@ -52,4 +52,4 @@ The Redis version 6.2 is built upon the following component versions: - [JSON 2.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.4-release-notes/) - [Time series 1.8](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.8-release-notes/) - [Bloom 2.4](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.4-release-notes/) -- [Graph 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.10-release-notes/) \ No newline at end of file +- [Graph 2.10](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.10-release-notes/)