多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Redis 8.10.0 正式发布:紧凑哈希、批量导入、备份恢复、流与时序能力全面升级

Redis 8.10.0 正式发布:紧凑哈希、批量导入、备份恢复、流与时序能力全面升级 Redis 8.10.0 于 2026 年 8 月 10 日正式发布这是 Redis Open Source 的 Redis 8.10 通用可用版本。相比 Redis 8.8Redis 8.10 带来了紧凑哈希、高吞吐批量插入、基于 TLS 对等证书的节点认证、列表多元素迁移、集合基数统计、节点侧备份恢复、流读取限制、搜索别名查询、更多语言词干支持、JSONPath 扩展以及时序数据查询能力增强等重要更新。同时该版本提供二进制发行包以及 Alpine、Debian Docker 镜像并覆盖多个 Linux 与 macOS 系统测试环境。一、Redis 8.10.0 正式进入通用可用阶段Redis 8.10.0 是 Redis Open Source 的通用可用版本发布时间为 2026 年 8 月 10 日。这一版本围绕内存效率、数据写入吞吐、节点间安全认证、数据迁移、集合统计、备份恢复、流式数据读取、搜索索引、JSON 处理和时序数据能力等多个方向进行增强。对于正在使用 Redis 8.8 的用户而言Redis 8.10 的更新内容不仅包括多个新增命令也覆盖了核心数据结构编码、备份机制、TLS 节点认证、流消费返回控制以及 RediSearch 和时序数据模块的功能扩展与稳定性修复。二、紧凑哈希降低共享模式哈希数据的内存占用Redis 8.10 引入了紧凑哈希编码。紧凑哈希是一种新的哈希编码方式其目标是降低内存使用量。它通过让共享相同模式的键仅存储一次哈希字段名称减少重复字段名带来的内存开销。在许多业务场景中多个哈希键往往具有一致的数据结构。例如多个对象可能都包含相同的一组字段。传统情况下每个哈希键都需要分别保存自己的字段名称而紧凑哈希能够让具有相同模式的键共享字段名称存储从而降低整体内存消耗。这项能力对于大量使用哈希结构、字段名称重复度较高的场景具有重要意义。Redis 8.10 通过新的紧凑哈希编码进一步强化了 Redis 在内存效率方面的表现。三、新增 HIMPORT面向紧凑哈希的高吞吐批量插入Redis 8.10 新增命令HIMPORT。HIMPORT用于紧凑哈希的高吞吐批量插入。随着紧凑哈希编码的引入Redis 同时提供了对应的高吞吐导入能力使批量写入紧凑哈希数据成为版本中的一项重点更新。对于需要批量写入哈希数据的业务而言HIMPORT提供了面向紧凑哈希的数据插入方式。该命令与紧凑哈希编码共同构成 Redis 8.10 在哈希数据存储与写入效率方向的重要升级。从版本更新内容来看紧凑哈希解决的是共享模式哈希字段名重复存储带来的内存问题而HIMPORT则面向紧凑哈希场景提供高吞吐批量插入能力。两者结合后Redis 8.10 对哈希数据的存储与导入能力进一步完善。四、TLS 对等证书认证加强服务器到服务器的安全认证Redis 8.10 新增基于 TLS 对等证书的服务器到服务器认证能力。这一更新面向 Redis 节点之间的通信认证。Redis 8.10 支持使用 TLS 对等证书进行服务器到服务器的身份认证为节点间通信提供新的认证方式。在 Redis 部署环境中服务器之间的通信涉及节点协作、复制、集群等运行过程。Redis 8.10 通过 TLS 对等证书认证为服务器到服务器的认证能力带来增强。该能力与 Redis 8.10 对安全性和节点通信可靠性的持续完善方向一致。对于需要在节点之间使用 TLS 通信的环境这项更新是版本中的重要安全能力变化。五、列表能力升级新增 LMOVEM 与 BLMOVEMRedis 8.10 新增两个列表命令LMOVEMBLMOVEM这两个命令用于在列表之间移动多个元素。此前列表元素迁移通常面向单个元素而 Redis 8.10 将列表移动能力扩展到多个元素级别。LMOVEM和BLMOVEM为列表之间的批量元素迁移提供支持。其中BLMOVEM作为阻塞式命令属于 Redis 8.10 列表功能增强的一部分。结合本次版本修复内容可以看到Redis 8.10 对阻塞列表操作、列表迁移以及列表键替换后的阻塞客户端处理都进行了进一步完善。新增LMOVEM和BLMOVEM后Redis 8.10 在列表数据的跨列表移动场景中具备了多元素迁移能力。六、集合统计能力增强新增 SUNIONCARD 与 SDIFFCARDRedis 8.10 新增两个集合基数统计命令SUNIONCARDSDIFFCARDSUNIONCARD用于获取多个集合并集的基数。SDIFFCARD用于获取多个集合差集的基数。集合操作是 Redis 常见的数据处理能力之一。Redis 8.10 通过这两个新命令进一步增强了集合并集与差集场景下的统计能力。对于多个集合而言业务可能需要关注集合运算后的元素数量。Redis 8.10 新增的SUNIONCARD可以获得多个集合并集的基数SDIFFCARD则可以获得多个集合差集的基数。这使 Redis 8.10 在集合运算结果的数量统计方面提供了更直接的命令支持。七、新增 BACKUP基于 MP-AOF 的节点侧备份与恢复能力Redis 8.10 新增命令BACKUP。BACKUP是一种节点侧备份与恢复实现基于多部分 AOF也就是 MP-AOF。Redis 8.10 将备份与恢复能力纳入节点侧实现并以 MP-AOF 为基础提供对应支持。该更新是本版本在数据持久化、备份和恢复方向的重要变化之一。从版本说明来看BACKUP面向的是基于多部分 AOF 的备份与恢复。Redis 8.10 在新增该命令的同时也修复了与 AOF 文件加载相关的问题进一步完善了持久化处理流程中的稳定性。对于关注数据备份与恢复能力的使用场景BACKUP是 Redis 8.10 值得重点关注的新命令。八、流读取能力增强XREAD 与 XREADGROUP 支持 MAXCOUNT 和 MAXSIZERedis 8.10 对流读取命令进行了扩展。XREAD和XREADGROUP新增以下参数MAXCOUNTMAXSIZE这两个参数用于限制累计返回的条目数量和返回大小。其中MAXCOUNT用于限制累计回复中的条目数量MAXSIZE用于限制累计回复的大小。Redis 8.10 通过这两个参数为流数据读取过程提供了更明确的返回控制能力。在流式数据读取中客户端一次读取可能涉及多个流、多个条目以及较大的返回内容。Redis 8.10 为XREAD和XREADGROUP增加MAXCOUNT与MAXSIZE参数后可以对累计返回的条目数量和数据大小进行限制。这项更新使 Redis 8.10 的流读取能力在返回规模控制方面更加完善。九、搜索能力更新新增 FT.ALIASLISTRedis 8.10 新增命令FT.ALIASLIST。FT.ALIASLIST用于获取索引的所有别名。索引别名是搜索索引管理中的重要信息。Redis 8.10 通过FT.ALIASLIST提供查询索引全部别名的能力。对于需要管理或查看索引别名的场景FT.ALIASLIST可以直接返回索引相关的全部别名信息。该命令是 Redis 8.10 在搜索索引别名查询方向新增的功能。十、词干处理扩展新增马来语和他加禄语支持Redis 8.10 扩展了词干处理能力。本版本新增对以下语言的词干支持马来语他加禄语词干处理是搜索相关能力的一部分。Redis 8.10 在既有语言支持基础上增加了马来语和他加禄语的词干支持。这一更新使 Redis 8.10 的多语言搜索处理范围进一步扩大。对于涉及马来语或他加禄语文本处理的搜索场景该版本新增了相应的词干支持能力。十一、JSONPath 扩展Redis 8.10 包含 JSONPath 扩展。JSONPath 是 JSON 数据访问与查询相关能力的重要组成部分。Redis 8.10 对 JSONPath 进行了扩展作为本版本 JSON 能力升级的一部分。随着 JSON 数据使用场景不断增加JSONPath 的扩展使 Redis 8.10 在 JSON 数据处理方向具备了新的增强内容。十二、时序数据能力升级新增 TS.NRANGE 与 TS.NREVRANGERedis 8.10 新增两个时序数据命令TS.NRANGETS.NREVRANGE这两个命令用于跨多个时序数据进行范围查询并按时间戳分组结果。其中TS.NRANGE面向范围查询TS.NREVRANGE面向反向范围查询。两者都支持跨多个时间序列执行查询并将结果按照时间戳进行分组。这项更新增强了 Redis 8.10 在多时间序列范围查询场景下的处理能力。对于需要同时查询多个时间序列、并希望按照时间戳组织结果的场景TS.NRANGE和TS.NREVRANGE提供了新的命令支持。十三、新增 TS.READ支持可选阻塞读取Redis 8.10 新增命令TS.READ。TS.READ用于时序数据读取并支持可选的阻塞读取。这一命令为 Redis 8.10 的时序数据读取带来了新的方式。除普通读取需求外TS.READ还支持可选阻塞能力。时序数据场景通常需要持续获取新数据。Redis 8.10 通过新增TS.READ将可选阻塞读取能力带入时序数据读取流程。十四、新增 TS.QUERYLABELS查询标签与标签值列表Redis 8.10 新增命令TS.QUERYLABELS。TS.QUERYLABELS用于获取标签以及标签值列表。标签是时序数据组织与查询中的重要信息。Redis 8.10 通过TS.QUERYLABELS提供获取标签和标签值的能力。对于需要查看时序数据相关标签及其标签值列表的场景TS.QUERYLABELS是 Redis 8.10 新增的重要命令之一。十五、TS.MRANGE 与 TS.MREVRANGE 新增 EXCLUDEEMPTYRedis 8.10 对以下时序范围查询命令进行增强TS.MRANGETS.MREVRANGE这两个命令新增EXCLUDEEMPTY参数。EXCLUDEEMPTY用于排除没有报告样本的时间序列。在多时间序列查询中部分时间序列可能没有返回样本。Redis 8.10 通过新增EXCLUDEEMPTY参数使TS.MRANGE和TS.MREVRANGE可以排除没有报告样本的序列。这一更新使多时间序列范围查询的结果控制能力更加灵活能够在查询结果中排除无报告样本的时间序列。十六、性能改进Redis 8.10 包含性能改进。除新增命令与功能扩展外Redis 8.10 也在性能方面进行了优化。版本说明将性能改进列为本次正式发布的重要内容之一。紧凑哈希、高吞吐批量插入、流读取返回上限、多时序查询与备份恢复等更新共同构成 Redis 8.10 在功能与性能方向的版本变化。十七、提供二进制发行包与多种安装方式Redis 8.10 提供二进制发行包。此外本版本支持多种安装和分发方式包括 Docker、Snap、Brew、RPM 与 Debian APT。可用方式如下Alpine 与 Debian Docker 镜像地址https://hub.docker.com/_/redis通过 Snap 安装参考地址https://github.com/redis/redis-snap通过 Brew 安装参考地址https://github.com/redis/homebrew-redis通过 RPM 安装参考地址https://github.com/redis/redis-rpm通过 Debian APT 安装参考地址https://github.com/redis/redis-debianRedis 8.10 通过 Alpine 与 Debian Docker 镜像提供容器化部署选择同时也覆盖 Snap、Brew、RPM 和 Debian APT 等安装渠道。十八、Redis 8.10 覆盖的测试操作系统Redis 8.10 在以下操作系统环境中进行测试。UbuntuUbuntu 22.04Jammy JellyfishUbuntu 24.04Noble NumbatUbuntu 26.04Resolute RaccoonRocky LinuxRocky Linux 8.10Rocky Linux 9.7Rocky Linux 10.1AlmaLinuxAlmaLinux 8.10AlmaLinux 9.7AlmaLinux 10.1DebianDebian 12.13BookwormDebian 13.4TrixieAlpineAlpine 3.23macOSmacOS 14.8.4SonomamacOS 15.7.4SequoiamacOS 26.3TahoemacOS 测试覆盖 Intel 和 ARM 两种架构。从测试环境覆盖范围来看Redis 8.10 覆盖 Ubuntu、Rocky Linux、AlmaLinux、Debian、Alpine 与 macOS 等多个操作系统版本并且 macOS 同时覆盖 Intel 与 ARM 架构。十九、Redis 8.10 相比 8.10-RC2 的问题修复Redis 8.10 在正式版本中修复了多个问题涉及主动碎片整理、阻塞列表操作、复制客户端内存统计、节点地址变化通知、AOF 加载以及搜索索引和聚合查询等方向。1、主动碎片整理阈值配置导致除零错误的问题问题编号 15513。当主动碎片整理阈值被配置为相等值或反向值时可能出现除零错误。Redis 8.10 修复了这一问题。该修复涉及主动碎片整理阈值配置场景避免阈值配置为相等或反向值时触发除零异常。2、SORT STORE 替换目标键后阻塞列表客户端持续阻塞的问题问题编号 15453。当SORT配合STORE替换目标键并且目标键被替换为列表时阻塞在BLPOP、BLMOVE或BLMOVEM上的客户端可能仍然保持阻塞状态。Redis 8.10 修复了这一问题。该修复覆盖BLPOP、BLMOVE与新增的BLMOVEM等阻塞列表操作改善了SORT配合STORE替换目标键为列表后的阻塞客户端处理行为。3、压缩复制客户端内存使用量报告偏低的问题问题编号 15499。对于压缩复制客户端报告的内存使用量可能低于实际消耗的内存。Redis 8.10 修复了压缩复制客户端内存使用量报告低于实际内存消耗的问题。4、节点自身 IP 或端口变化时未通知模块的问题问题编号 15518。Redis 8.10 增加了在节点自身 IP 地址或端口发生变化时通知模块的处理。该修复使模块能够在节点自身 IP 或端口变更时获得通知。5、启用主动碎片整理时加载带 RDB 前导的 AOF 文件失败的问题问题编号 15539。当启用主动碎片整理时加载带有 RDB 前导的 AOF 文件可能失败。Redis 8.10 修复了这一问题使启用主动碎片整理时加载带 RDB 前导的 AOF 文件的行为得到改善。二十、搜索相关问题修复Redis 8.10 还修复了多个搜索相关问题。1、数值范围树在后台垃圾回收期间遇到空叶节点时崩溃的问题问题编号 10528。在数值字段处于活跃索引过程中如果后台垃圾回收在数值范围树中遇到空叶节点可能导致崩溃。Redis 8.10 修复了数值范围树在后台垃圾回收期间遇到空叶节点时的崩溃问题。2、空字符串字段名导致索引创建或修改后出现崩溃循环的问题问题编号 10605。FT.CREATE和FT.ALTER现在会拒绝空字符串作为字段名防止带有空 TAG 字段的索引在 fork-GC 中触发崩溃循环。Redis 8.10 对空字段名进行了明确限制。对于FT.CREATE和FT.ALTER空字符串字段名将被拒绝。版本说明中还再次明确指出FT.CREATE和FT.ALTER在字段名为空字符串时将返回错误此前这类模式可能被静默接受。这一修复既避免空字符串字段名被接受也防止相关索引在 fork-GC 中触发崩溃循环。3、包含 INDEXMISSING 字段的索引在垃圾回收后 num_records 为负数的问题问题编号 10488。对于包含INDEXMISSING字段的索引垃圾回收后FT.INFO可能报告负数的num_records。Redis 8.10 修复了这一问题避免包含INDEXMISSING字段的索引在垃圾回收后出现负数记录数报告。4、集群 FT.AGGREGATE 在 GROUPBY 中包含多个 COLLECT 时失败的问题问题编号 10568。在集群环境中如果FT.AGGREGATE的GROUPBY包含多个针对同一字段的REDUCE COLLECT调用并且这些调用仅在选项关键字大小写方面存在差异则可能因SEARCH_FIELD_DUP失败。Redis 8.10 修复了这一问题。该修复覆盖集群FT.AGGREGATE场景处理GROUPBY中多个同字段REDUCE COLLECT调用仅因选项关键字大小写不同而导致SEARCH_FIELD_DUP失败的情况。5、混合执行路径下超时警告被重复计数的问题问题编号 10522。对于使用混合执行路径的FT.SEARCH查询也就是向量加过滤执行路径coord_total_query_warnings_timeout可能会对超时警告进行重复计数。Redis 8.10 修复了混合执行路径下超时警告被双重计数的问题。二十一、Redis 8.10.0 更新内容汇总Redis 8.10.0 的核心更新可以归纳为以下几个方面引入紧凑哈希编码减少共享相同模式的哈希键中字段名称的重复存储降低内存使用量。新增HIMPORT支持紧凑哈希高吞吐批量插入。支持基于 TLS 对等证书的服务器到服务器认证。新增LMOVEM与BLMOVEM支持在列表之间移动多个元素。新增SUNIONCARD获取多个集合并集的基数。新增SDIFFCARD获取多个集合差集的基数。新增BACKUP提供基于 MP-AOF 的节点侧备份与恢复实现。XREAD与XREADGROUP新增MAXCOUNT和MAXSIZE限制累计返回条目和返回大小。新增FT.ALIASLIST获取索引的所有别名。新增马来语和他加禄语词干支持。包含 JSONPath 扩展。新增TS.NRANGE与TS.NREVRANGE支持跨多个时序数据范围查询并按时间戳分组结果。新增TS.READ支持可选阻塞读取。新增TS.QUERYLABELS获取标签与标签值列表。TS.MRANGE与TS.MREVRANGE新增EXCLUDEEMPTY用于排除没有报告样本的时间序列。包含性能改进。提供二进制发行包。提供 Alpine 与 Debian Docker 镜像。支持 Snap、Brew、RPM 与 Debian APT 安装方式。覆盖 Ubuntu、Rocky Linux、AlmaLinux、Debian、Alpine 以及 macOS 多个版本测试环境。修复主动碎片整理、阻塞列表命令、压缩复制客户端内存统计、节点地址变化通知、AOF 加载以及搜索索引等多个问题。Redis 8.10.0 作为正式发布版本在哈希内存优化、批量写入、节点安全认证、备份恢复、流式数据处理、搜索能力、JSONPath 和时序数据查询等方向带来了集中更新。同时针对主动碎片整理、AOF 加载、阻塞列表操作和搜索索引稳定性的问题修复也进一步完善了该版本的可用性与稳定性。
返回列表