diff --git a/content/develop/whats-new/8-0.md b/content/develop/whats-new/8-0.md index 2db79b435..41887cc04 100644 --- a/content/develop/whats-new/8-0.md +++ b/content/develop/whats-new/8-0.md @@ -8,87 +8,86 @@ categories: - operate - rs - rc -description: What's new in Redis 8 in Redis Open Source -linkTitle: What's new in Redis 8.0 +description: What's new in Redis 8 +linkTitle: What's new in Redis 8 weight: 5 --- -## Highlights - -- **Name change**: Redis Community Edition is now **Redis Open Source** -- **License options**: - - Redis Source Available License 2.0 (RSALv2) - - Server Side Public License v1 (SSPLv1) - - GNU Affero General Public License (AGPLv3) - -- **Integrated modules** now part of core: - - JSON - - Probabilistic: Bloom, Cuckoo, Count-min sketch, Top-K, and t-digest - - Time Series - - [Vector sets (preview)]({{< relref "/develop/data-types/vector-sets/" >}}) - - [Redis Query Engine]({{< relref "/develop/interact/#search-and-query" >}}) with horizontal & vertical scaling - - All components available in Redis binary distributions - - New config file: `redis-full.conf` for full component loading - -## New Commands - -- **Hash with expiration support**: - - `HGETDEL` – get and delete hash field - - `HGETEX`, `HSETEX` – get/set hash fields with expiration -- **Field TTL & expiration (7.4+)**: - - `HEXPIRE`, `HPEXPIRE`, `HEXPIREAT`, `HPEXPIREAT` - - `HPERSIST`, `HEXPIRETIME`, `HPEXPIRETIME`, `HTTL`, `HPTTL` -- **Other command additions**: - - `XREAD +` – read latest stream entry - - `HSCAN NOVALUES` – scan hash field names only - - `SORT` in cluster mode with `BY` and `GET` - - `CLIENT KILL MAXAGE` - - Lua: `os.clock()` now available - - `SPUBLISH` in `MULTI/EXEC` transactions on replicas - - [Vector set command group (preview)]({{< relref "/commands/?group=vector_set" >}}) - -## Internal Architecture - -- **I/O threading overhaul**: read+write threading for higher throughput -- **Replication**: improved mechanism with AOF offset support -- **Over 30 performance optimizations**: - - Optimized: `GET`, `EXISTS`, `LRANGE`, `HSET`, `XREAD`, `SCAN`, `ZADD`, `ZUNION`, `PFCOUNT`, `HSCAN`, and more - - Improved latency, memory, and CPU utilization - -## Security - -- CVE-2024-46981: Lua RCE -- CVE-2024-51741: ACL DoS -- CVE-2024-31449, 31227, 31228: DoS in Lua/ACLs - -## Packaging - -Redis 8 in Redis Open Source is available in the following distributions: - -- [Docker](https://hub.docker.com/_/redis) -- APT -- RPM -- Snap -- Homebrew -- Pre-built binaries -- [Source code](https://github.com/redis/redis/releases/tag/8.0-rc1) - -## Observability - -- New `INFO` sections: - - `KEYSIZES`, `Threads` - - Hash expiration stats - - Client buffer disconnection counters - - Dictionary memory rehashing - - Script eviction stats - -## Upgrades & Support - -- Supports upgrade from: - - Redis 7.x with or without modules - - Redis Stack 7.2 and 7.4 -- Supported operating systems: - - Ubuntu 20.04 / 22.04 / 24.04 - - Debian 11 / 12 - - macOS 13–15 - - Rocky/Alma Linux 8.10 / 9.5 +Redis 8.0 introduces powerful new capabilities, including the beta release of the Vector Set data structure, designed for AI use cases such as semantic search and recommendation systems. + +This release also delivers over 30 performance improvements, including: +- Up to 87% faster command execution +- Up to 2x higher throughput +- Up to 18% faster replication + +Additionally, the Redis Community Edition has been renamed to Redis Open Source, marking a shift toward a unified, modern distribution. This version offers the full power of Redis — no modules, no fragmentation — just Redis. + +Below is a detailed breakdown of these updates. + +## New features +### Vector set [beta] +The new `Vector set` data structure supports high-dimensional vector similarity search, which is ideal for AI use cases such as semantic search and recommendation systems. Vector set complements Redis’s existing vector search capabilities via the Query Engine and is currently available in beta. APIs and behaviors may change in future releases. + +### New hash commands +Redis 8 builds on Redis 7.4’s introduction of field-level expiration in hashes and adds three new commands for working with hashes: +- [HGETEX](https://redis.io/docs/latest/commands/hgetex/): Fetch a hash field and optionally set an expiration +- [HSETEX](https://redis.io/docs/latest/commands/hsetex/): Set a hash field and optionally set an expiration +- [HGETDEL](https://redis.io/docs/latest/commands/hgetdel/): Fetch and delete a hash field + +These commands simplify common caching and session management usage patterns. + +## Improvements +### Redis Query Engine Improvements +The Redis Query Engine allows users to use Redis as a document database, a vector database, a secondary index, and a search engine. With Redis Query Engine, users can define indexes for hash and JSON documents, and use a rich query language for vector search, full-text search, geospatial queries, and aggregations. + +Use cases include: + +- Vector Search: Search based on semantic similarity using vector embeddings stored in `JSON` or `hashes` +- Exact Matching: Lookups using filters, tags, and ranges +- Full-Text Search: Supports stemming, synonyms, and fuzzy matching + +The Redis Query Engine powers a wide range of applications, from AI retrieval-augmented generation (RAG) systems to full-featured search engines. + +### Access Control Improvements +Access Control Lists (ACLs) have been updated to support the new data structures introduced in Redis 8. Existing ACL categories such as `@read` and `@write` now include commands for `JSON`, `time series`, `VECTOR`, and `probabilistic` data structures. + +These updates allow for more precise control over which operations users can perform on each data structure. + +### Performance improvements +Redis 8 delivers the largest performance leap in Redis history with over 30 optimizations, including: +- Up to 87% lower command latency +- 2x throughput in multi-threaded workloads +- 35% memory savings for replica nodes +- 16x more query processing capacity with horizontal and vertical scaling + +These improvements benefit both single-node and clustered deployments. More details are available in the [Redis 8 GA](https://redis.io/blog/redis-8-ga/) blog post. + +## Changes + +### Breaking changes +#### ACL behavior +Commands from included modules are now covered under standard categories (e.g., `+@read`, `+@write`). A user with `+@all` `-@write` will no longer be able to execute `FT.SEARCH` as they could before. +Explicit inclusion of new command categories is required to maintain access. + +#### Redis Query Engine +The following changes affect behavior and validation in the Redis Query Engine: +- Enforces validation for `LIMIT` arguments (offset must be 0 if limit is 0). +- Enforces parsing rules for `FT.CURSOR READ` and `FT.ALIASADD`. +- Parentheses are now required for exponentiation precedence in `APPLY` expressions. +- Invalid input now returns errors instead of empty results. +- Default values revisited for reducers like `AVG`, `COUNT`, `SUM`, `STDDEV`, `QUANTILE`, and others. +- Updates to scoring (`BM25` is now the default instead of `TF-IDF`). +- Improved handling of expired records, memory constraints, and malformed fields. + +For a full list of the Redis Query Engine-related changes, see the [release notes](https://github.com/redis/redis/releases). + +### Other changes +#### One Redis +Over time, Redis introduced several modules to address new use cases such as search, vector similarity, time series analysis, and probabilistic modeling. While these modules extended Redis’s functionality, managing version compatibility and module installation introduced friction. + +Redis Stack partially solved this by bundling modules together, but it also created fragmentation across the ecosystem. + +Redis 8 merges Redis Stack and Redis Community Edition into a single unified distribution: Redis Open Source. All previously modular functionality is now built into the Redis Open Source package, eliminating the need to manage separate modules. You now get a single, consistent feature set across all deployments. + +## Component versions +Redis 8.0 delivers just Redis — no modules, no fragmentation.