Redis 8.2
提示
来自deepseek解释
原文链接:https://redis.io/docs/latest/develop/whats-new/8-2/
Redis 8.2 在 Redis 8.0 的基础上进行了显著的性能和内存优化,增强了流处理能力,并改进了集群管理工具。
本版本在多个领域提供了重大改进:
- 增强的 Redis Streams,新增命令改善消费者组管理
- 新的位图操作,支持高级位操作
- 高级集群监控,提供按槽使用指标
- 优化的向量搜索,采用新的压缩算法
- 增强的键空间通知,新增事件类型
- 超过 15 项性能和资源利用率改进
以下是这些更新的详细说明。
安全改进
Redis 8.2 包含重要的安全修复:
- CVE-2025-27151:修复了 redis-check-aof 中潜在的栈溢出和 RCE 漏洞。
- CVE-2025-32023:修复了 HyperLogLog 命令中的越界写入漏洞。
- CVE-2025-48367:改进了连接处理,即使在发生错误时也能重试接受连接。
新特性
增强的 Redis Streams
Redis 8.2 引入了强大的新命令,简化了消费者组管理和流生命周期操作:
这些命令包含 KEEPREF、DELREF 和 ACKED 选项,让您能够精确控制删除条目时消费者组引用的处理方式。这简化了在处理多个消费者组时需要清理已确认条目的常见模式。
XADD 和 XTRIM 命令也通过相同的选项进行了扩展,在所有移除流条目的命令中提供一致的行为。
集群监控改进
新的 CLUSTER SLOT-STATS 命令提供详细的按槽使用指标,包括:
- 每个槽的键数量
- CPU 时间消耗
- 网络入站和出站流量
这种增强的可视性帮助您优化集群性能并识别数据分布中的热点。
向量搜索增强
VSIM 命令现在支持 IN 操作符用于过滤表达式,在执行带有复杂过滤条件的向量相似性搜索时为您提供更大的灵活性。
增强的位图操作
Redis 8.2 通过新操作符扩展了 BITOP 命令,提供更复杂的位操作能力:
- DIFF:在位图之间执行按位差运算。
- DIFF1:使用优化的单位运算计算差集。
- ANDOR:在单个命令中结合 AND 和 OR 操作。
- ONE:针对单位场景的专用操作。
这些新操作符支持更复杂的位图工作流,并能简化此前需要多个命令的操作。
改进的键空间通知
Redis 8.2 引入了新的键空间通知事件类型,提供对数据变更的更好可视性:
- OVERWRITTEN:当键的值被完全覆盖时触发。
- TYPE_CHANGED:当键的数据类型更改时触发。
这些事件通过提供关于特定类型数据修改的细粒度通知,帮助您构建更具响应性的应用程序。
改进
Redis 8.2 在核心操作方面提供了显著的性能提升。
性能优化
- BITCOUNT:通过预取优化增强了位计数操作的速度。
- SCAN:优化为仅对带有易失键的数据库执行过期检查,减少了不必要的开销。
- 列表操作:
LREM、LPOS和LINSERT受益于quicklistCompare中缓存的string2ll结果。 - 有序集合操作:
ZRANK和相关命令使用相同的缓存优化。 - 键操作:使用 TTL 时,
COPY、RENAME和RESTORE得到优化。 - 客户端管理:减少了客户端 cron 操作中的开销,避免阻塞主线程。
- 向量操作:通过存储最差链路信息,提高了向量集合的 RDB 加载和 RESTORE 速度。
内存效率改进
- JSON 数据类型:通过数字内联减少了内存占用。
- 内存跟踪:减少了与跟踪 malloc 可用内存相关的开销。
- 过期处理:优化了扫描回调中的过期检查。
- 向量压缩:为 SVS-VAMANA 向量索引增加了额外的压缩变体,减少内存使用。
向量搜索性能
Redis 8.2 为 Redis 集群中的 KNN 向量查询引入了 SHARD_K_RATIO 参数。此不稳定特性允许您在精度不是关键时优先考虑网络延迟而非准确性,从而提供更快的响应。
增强的指标
Redis 8.2 提供了新的指标,帮助您监控和排查 Redis 实例。
内存指标
used_memory_peak_time:达到used_memory_peak时的时间戳
复制指标
master_current_sync_attempts:自上次断开连接以来的同步尝试次数master_total_sync_attempts:对主节点的总同步尝试次数master_link_up_since_seconds:复制链路建立以来的持续时间total_disconnect_time_sec:副本累计断开连接的时间
这些指标提供了对复制健康状态的更好可视性,并帮助您识别连接稳定性中的模式。
组件版本
Redis 8.2 延续了 Redis 8.0 中引入的统一分发方式,在单个 Redis 开源包中提供所有功能,无需单独的模块。