Redis 8.8 in Redis Open Source is now available, bringing performance improvements alongside a set of powerful new features. Highlights include array - a new general-purpose data structure, a window counter rate limiter, streams message NACKing, subkey notifications for hash fields, explicit control over JSON numeric array storage, multiple aggregators in a single time series query, and a new COUNT aggregator for sorted sets union and intersection.
Summary of performance improvements in 8.8
Redis 8.8 introduces significant end-to-end throughput improvements:
Data type Operations End-to-end throughput improvements Strings MGET (pipelined, with I/O-threads) Up to 68% MGET (pipelined, single thread) Up to 50% MSET Up to 8% Hash HGETALL Up to 25% (1K+ fields) Streams XREADGROUP Up to 83% (COUNT 100) Sorted set ZADD, ZINCRBY, ZRANGEBYSCORE Up to 74% Bitmap Bitmap operations Up to 28% (x86) HyperLogLog PFCOUNT Up to 18% (x86) (several) SCAN, HSCAN, SSCAN, ZSCAN Up to 40%
In addition, persistence and replication (full synchronization) is now up to 60% faster.
Summary of new features in 8.8
Redis has always been about choosing the right data structure for the job. In Redis 8.8, we introduce a new general-purpose data structure: array. An array is an index-addressable collection of string values. Each array element is stored at a numeric index, and can be accessed extremely fast. Arrays are dynamic, sparse-friendly, and compute-aware containers, enabling new use cases and better flexibility and efficiency for existing use cases (by @antirez).
Rate limiting is one of the most common Redis use cases. Traditionally, users implemented rate limiters using server-side Lua scripts combined with client logic. In Redis 8.8, we introduce a window counter rate limiter (by @raffertyyu, together with the Redis team).
Our investment in improving Redis Streams continues.
Redis 8.2 simplified message acknowledgment and deletion across multiple consumer groups
... continue reading