内容提要
Redis 8.10 开源版发布,重点提升内存效率、扩展数据结构能力并简化运维。新增紧凑哈希模板,内存降低达 50%,HIMPORT 批量导入吞吐提升 2 倍;扩展 JSONPath 语法;Streams 支持 MAXCOUNT/MAXSIZE 限制;新增 Set 并集差集基数命令、批量 List 原子移动、按时间戳对齐的 TS.NRANGE 查询及阻塞式 TS.READ;引入增量备份与恢复,降低大规模集群备份资源开销。
延伸解读
紧凑哈希与 HIMPORT:降低内存与提升导入效率
Redis 8.10 引入哈希模板,允许大量结构相同的哈希共享字段名,从而将内存占用降低最多 50%。同时新增 HIMPORT 命令,客户端只需发送一次字段集,后续仅传输值,减少网络与服务器解析开销,使哈希加载吞吐提升至 2 倍。这些改进特别适合用户画像、会话、特征存储等场景,且现有哈希命令语义不变,运维人员还可选择自动模板转换,无需修改应用。
JSONPath 与 Streams 增强:更灵活的数据处理
Redis 8.10 显著扩展了 JSONPath 语法,新增过滤、计算、聚合等函数,使应用能在 Redis 内完成更多数据处理,减少数据传输。Streams 方面,XREAD 和 XREADGROUP 新增 MAXCOUNT 和 MAXSIZE 选项,可限制单次读取的总消息数和总大小,避免从多个 Stream 读取时响应过大,帮助应用控制网络传输和内存消耗。
集合、列表与时间序列的新命令
Redis 8.10 为 Set 新增 SUNIONCARD 和 SDIFFCARD,用于获取并集和差集的基数,避免返回大集合或创建临时集合,其中 SUNIONCARD 支持 APPROX 选项进行 HyperLogLog 估算。List 新增原子批量移动命令,支持 COUNT 和 EXACTLY 模式,以及 OBO 和 BULK 顺序。TimeSeries 新增 TS.NRANGE 和 TS.NREVRANGE 按时间戳对齐查询,TS.READ 阻塞等待新样本,以及 EXCLUDEEMPTY 标志过滤空序列。
增量备份与恢复:降低大规模集群备份开销
Redis 8.10 引入基于 BACKUP 命令族的增量备份与恢复。备份开始时生成时间点 RDB 快照,随后记录增量 AOF 文件,封存时无需再次 fork,允许分片错峰快照并协调完成。恢复时可通过 preload-file 启动选项加载备份清单或独立 RDB 文件。这一机制显著降低了大规模集群备份时的资源峰值,提升可靠性。
Q&A
Redis 8.10 在内存优化方面有什么新特性?
Redis 8.10 引入了紧凑哈希模板,允许哈希共享相同的字段名集合,同时保持值独立。对于大量结构相似的哈希,内存使用可降低高达 50%。
HIMPORT 命令有什么作用?
HIMPORT 用于高效批量导入具有相同字段的哈希。客户端只需准备一次字段集,然后仅发送值即可加载哈希,减少了网络和服务器处理开销,使哈希加载吞吐量提升高达 2 倍。
Redis 8.10 对 JSONPath 语法做了哪些扩展?
Redis 8.10 显著扩展了 JSONPath 语法,新增了 in、nin、match()、search()、concat()、first()、last()、append()、index()、min()、max()、avg()、sum()、stddev()、length()、count()、keys()、value() 等能力,允许在 Redis 内直接进行更多过滤、计算和聚合。
Streams 的 MAXCOUNT 和 MAXSIZE 选项有什么用途?
MAXCOUNT 和 MAXSIZE 用于限制从多个 Stream 读取时的总体响应大小。例如,可以设置每个 Stream 最多读取 100 条消息,同时整体返回不超过 200 条消息,从而控制网络传输和内存消耗。
Redis 8.10 新增了哪些 Set 基数操作命令?
Redis 8.10 新增了 SUNIONCARD 和 SDIFFCARD 命令,分别用于返回集合并集和差集的基数。SUNIONCARD 还支持 APPROX 选项,使用 HyperLogLog 进行快速估算,标准误差为 0.81%。
TS.NRANGE 和 TS.READ 命令解决了什么问题?
TS.NRANGE 和 TS.NREVRANGE 允许查询一组明确指定的时间序列,并按时间戳分组返回结果,便于时间对齐的数据消费。TS.READ 是一个可选阻塞命令,允许应用等待新样本到达,而不是反复轮询,适用于实时仪表盘、监控等场景。
Redis 8.10 的增量备份与恢复是如何工作的?
增量备份通过新的 BACKUP 命令族实现。备份开始时创建时间点 RDB 快照(BASE),随后将写入记录到增量 AOF 文件中。备份密封时,RDB 快照、增量 AOF 文件和清单组成完整备份。恢复时,可使用 preload-file 启动选项加载密封的备份清单或独立 RDB 文件。