Redis 8.2

Redis 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 流

Redis 8.2 引入了强大的新命令,简化了使用者组管理和流生命周期操作:

  • XDELEX: 使用高级消费者组处理选项从流中删除条目。
  • XACKDEL: 在单个原子操作中确认和删除流条目。

这些命令包括 KEEPEFDERLEFACKED 选项,可以让您精确控制在条目删除过程中如何处理消费者组引用。这简化了需要在处理多个消费者组时清理已确认条目的常见模式。

XADDXTRIM 命令也通过这些相同的选项进行了扩展,在所有删除流条目的命令中提供了一致的行为。

集群监控改进

新的 CLUSTER SLOT-STATS 命令提供了详细的每槽使用指标,包括:

  • 每个槽的密钥计数
  • CPU 时间消耗
  • 网络输入和输出

这种增强的可见性有助于您优化集群性能并识别数据分布中的热点。

向量搜索增强

VSIM 命令现在支持 IN 运算符进行过滤表达式,这使得在执行具有复杂过滤标准的向量相似性搜索时更加灵活。

改进了位图操作

Redis 8.2 通过新的运算符扩展了 BITOP 命令,提供了更复杂的位操作功能:

  • DIFF: 在位图之间执行按位差分操作。
  • DIFF1: 使用优化的单比特操作计算差值。
  • ANDOR: 在单个命令中结合 AND 和 OR 操作。
  • ONE: 针对单位场景的专用操作。

这些新的运算符可以实现更复杂的位图工作流程,并可以简化以前需要多个命令的操作。

改进的键空间通知

Redis 8.2 引入了新的键空间通知事件类型,提供了对数据更改的更好可见性:

  • OverwriteTEN: 当密钥的值完全覆盖时触发。
  • TYPE_CHANGED: 当密钥的数据类型发生变化时触发。

这些事件通过提供关于特定类型数据修改的详细通知,帮助您构建更具响应能力的应用程序。

改进

Redis 8.2 在核心操作方面提供了显著的性能改进。

性能优化

  • 比特计数:通过预取优化进行增强,以实现更快的比特计数操作。
  • 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 的同步尝试总次数
  • Master_link_up_Since_seconds: 自复制链路建立以来的持续时间
  • Total_disconnect_time_sec: 副本断开连接的累计时间

这些指标可以更好地了解复制运行状况,并帮助您识别连接稳定性的模式。

组件版本

Redis 8.2 延续了 Redis 8.0 中引入的统一分发方法,在一个 Redis 开源包中提供所有功能,而无需单独的模块。

作者:Jeebiz  创建时间:2025-11-18 09:59
最后编辑:Jeebiz  更新时间:2025-11-18 10:09