Redis 8.8 已正式 GA,这是 Redis 开源版本在 8.8 分支的重要里程碑。相比 8.6,8.8 引入了多项实质性新特性和改进,覆盖数据结构、查询能力与运行时可观测性多个维度。
Array 新数据结构由 Redis 之父 Salvatore Sanfilippo(@antirez)贡献,首次为 Redis 核心引入了原生的数组类型。这一数据结构的加入填补了 Redis 在有序集合与列表之外对纯数组类型的空白场景需求,开发者可以在不使用序列化 JSON 的前提下直接存储和操作数组结构,降低了内存开销并提升了访问效率。
INCREX 是本次最受关注的命令之一——一个将 INCR、INCRBY、INCRBYFLOAT 与边界控制、过期时间融合在一起的窗口计数器速率限制命令。在 INCREX 出现之前,实现滑动窗口限流通常需要借助 Redis 的有序集合或 Lua 脚本手动编排,逻辑复杂且性能受限。INCREX 将这一常见需求封装为单一命令,开发者只需一条指令即可完成"时间段内计数 + 上限判断 + 自动过期"的完整限流逻辑。据 Redis 团队透露,INCREX 在高并发场景下的吞吐量相比基于 Lua 脚本的实现提升约 40%,同时降低了开发者的心智负担。该命令由 @raffertyyu 与 Redis 团队共同贡献。
流处理方面,XNACK 命令允许消费者显式释放 pending 消息,解决了此前 Streams 消费组模型中消息一旦被 PENDING 就难以转移给其他消费者的历史痛点。在微服务架构中跨实例迁移消费任务时,这一特性将显著简化运维复杂度。此外,ZUNION 和 ZINTER 系列命令新增了 COUNT 聚合器,支持在一次命令调用中完成并集/交集后的数量统计,而无需再额外执行 ZCARD,减少了网络往返次数。
在 JSON 模块方面,JSON.SET 新增 FPHA 参数,允许用户指定同构浮点数数组的精度类型,在处理时序数据或传感器数据时能够进一步压缩存储空间。TS.RANGE 及相关命令则支持在单条命令内指定多个聚合函数,一次查询即可获取多种粒度的统计结果。
性能层面,RediSearch 模块的 FT.HYBRID KNN 查询新增参数以控制每个分片的候选集数量,帮助开发者在精度与性能之间做更精细的权衡。FT.PROFILE 也新增了对 HYBRID 查询模式的支持,进一步完善了查询分析能力。
值得注意的还有二进制分发层面的变化。Redis 8.8 正式引入了 Alpine 和 Debian 官方 Docker 镜像,并在 Snap、Homebrew、RPM、Debian APT 等主流包管理渠道上线安装包,使得在不同操作系统上的部署流程更加标准化。
Bugfix 方面相对 8.8-RC1 共修复了 4 个关键问题:INCREX 语法修正、运行时内存追踪开启(非集群模式)、多 shard 命令执行时集群拓扑变更处理,以及 RDB 加载时的内存泄漏问题。
Redis 8.8 在测试支持层面覆盖了 Ubuntu 22.04 至 26.04、Rocky Linux 8.10 至 10.1、AlmaLinux 8.10 至 10.1、Debian 12.13 至 13.4、Alpine 3.23,以及 macOS 14.8.4 至 26.3(Intel 与 ARM 双架构),生态完整性进一步提升。
下载地址 & 发布说明:https://github.com/redis/redis/releases/tag/8.8.0