Redis 8.4
提示
来自deepseek解释
原文链接:https://redis.io/docs/latest/develop/whats-new/8-4/
Redis 8.4 在 Redis 8.2 的基础上进行了重大增强,涉及集群操作、字符串操作和流处理能力。
本版本在多个领域提供了重大改进:
- 原子集群槽迁移,实现零停机操作
- 增强的字符串操作,支持原子比较并设置功能
- 具有空闲条目认领功能的高级流处理
- 结合多种排序算法的混合搜索能力
- 针对位操作和向量处理的高性能 SIMD 优化
- 改进的 JSON 处理,内存效率更高
以下是这些更新的详细说明。
新特性
原子集群操作
Redis 8.4 引入了 CLUSTER MIGRATION 命令,支持在集群节点之间进行原子槽迁移。该命令通过单个原子操作移动槽及其关联数据,确保集群操作零停机,消除了此前槽迁移期间出现的短暂不可用窗口。
增强的字符串操作
Redis 8.4 通过强大的新命令扩展了字符串操作能力,支持原子比较并设置操作:
SET 命令现在通过新的扩展支持原子比较并设置和比较并删除操作,使您能够实现无锁数据结构和乐观并发控制模式。
多键过期管理
新的 MSETEX 命令允许您在单个原子操作中设置多个键并更新其过期时间。这简化了需要在相关键之间保持一致的 TTL 值的批量操作。
高级流处理
Redis 8.4 为 XREADGROUP 增加了 CLAIM min-idle-time 选项,增强了流处理能力。此功能使消费者组能够在单个操作中自动认领并处理空闲待处理条目和新传入条目,简化了消费者组管理并提高了处理效率。
混合搜索能力
新的 FT.HYBRID 命令引入了混合查询,使用倒数排序融合(RRF)和线性组合方法结合多种排序算法。这使得您能够创建利用语义相似性和传统文本匹配的复杂搜索体验。
增强的 AOF 可靠性
Redis 8.4 引入了在启动时对损坏的 AOF(仅追加文件)尾部进行自动修复的选项。新的 aof-load-corrupt-tail-max-size 配置参数允许 Redis 自动修复轻微的 AOF 损坏,提高了系统韧性并减少了人工干预需求。
改进
Redis 8.4 通过先进的 SIMD 优化和改进的算法提供了显著的性能提升。
性能优化
- BITCOUNT:为 x86 架构增强了 AVX2 和 AVX512 popcount 实现,并为 ARM 处理器增加了 Arm Neon SIMD 向量化支持。
- HyperLogLog:通过无分支比较和 Arm Neon SIMD 向量化优化,提高了基数估计性能。
- 向量操作:
VADD和VSIM命令受益于 AVX2 和 AVX512 点积实现,加快了向量处理速度。 - 命令处理:新的预读预取通过预读管道提前解析多个命令,减少了处理延迟。
内存效率改进
- JSON 数据类型:通过同构数组优化和短字符串内联,减少了内存占用。
- Lua 集成:通过新的
decode_array_with_array_mt配置参数增强了 JSON 数组处理,提高了内存利用率。
搜索和索引增强
Redis 8.4 对搜索功能进行了多项改进:
- 默认评分:新的
search-default-scorer参数将 BM25STD 设置为默认的文本和标签评分器,开箱即用提供更好的相关性排名。 - OOM 处理:
search-on-oom参数控制内存不足时的查询行为,提供忽略、失败或返回部分结果等选项。 - 多线程:
search-io-threads参数允许您为集群管理器协调配置通信线程,提高集群环境中的搜索性能。 - 索引更新:搜索索引现在支持在原子槽迁移期间进行更新,在集群操作期间保持搜索功能。
增强的配置
Redis 8.4 引入了新的配置参数,使您能够对系统行为进行更大的控制:
lookahead:可在运行时配置的命令预取预读深度(默认:16)aof-load-corrupt-tail-max-size:自动 AOF 修复的最大损坏尾部大小decode_array_with_array_mt:控制 Lua 如何处理空 JSON 数组
组件版本
Redis 8.4 继续采用统一分发方式,在单个 Redis 开源包中提供所有功能,无需单独的模块。这包括:
- RedisTimeSeries:为时间序列命令增加了
HELP和COMMAND DOCS支持 - RedisBloom:为概率命令增加了
HELP和COMMAND DOCS支持 - RediSearch:先进的混合搜索能力和改进的集群协调
已知限制
使用 Redis 8.4 时,请注意以下当前限制:
- 搜索命令(
FT.SEARCH、FT.AGGREGATE、FT.CURSOR、FT.HYBRID)和时间序列命令(TS.MGET、TS.MRANGE、TS.MREVRANGE、TS.QUERYINDEX)在原子槽迁移期间可能返回部分结果或重复结果。 FT.PROFILE、FT.EXPLAIN和FT.EXPLAINCLI不包含FT.HYBRID选项。FT.HYBRID指标不显示在FT.INFO和INFO命令中。- 若干
FT.HYBRID选项(EXPLAINSCORE、SHARD_K_RATIO、YIELD_DISTANCE_AS、WITHCURSOR)尚不可用。 - 当前不支持在
COMBINE步骤之后使用FILTER进行后过滤。