系统极客一直在努力
专注操作系统及软件使用技能

Redis 8.4 发布:混合搜索与性能双重飞跃

Redis

Redis 8.4 正式发布!新版本在 Redis 8.0 的架构基础上,进一步挖掘了性能潜力和功能边界。

Redis 8.2 主要更新亮点

全新的 FT.HYBRID 命令

此次更新的重头戏当属全新的FT.HYBRID命令。它打破了全文检索与向量检索之间的界限,首次实现了单次查询中「全文本 + 向量」的混合搜索。

  • 在以往版的本中要实现类似功能,开发者需要编写复杂的多步逻辑,手动合并评分,甚至依赖外部管道。这不仅增加了系统延迟,还常常牺牲搜索精度。
  • FT.HYBRID的出现彻底改变了这一局面:应用现在可以更自然地表达搜索意图,将语义匹配与字面匹配自由组合,同时兼顾上下文权重,甚至无缝融入GEOGEOSHAPE地理空间过滤——所有操作都在一次查询中完成。

性能表现:吞吐量与并发能力提升

  • 开发团队表示,在典型的缓存场景(90% 读、10% 写)下,Redis 8.4 的吞吐量相较 8.2 版本提升了超过 30%。
  • 得益于新引入的「多线程 I/O 处理机制」,搜索负载同样也受益匪浅。当大规模结果集分散在多个分片(Shards)时,系统不再通过单线程「漏斗」串行处理,而是并发响应。这一改进不仅加速了结果返回,还大幅提升了聚合操作的效率,让工作线程能更专注于核心的搜索与评分逻辑。
Redis 8.4 并行 I/O 对 RediSearch 查询性能的影响
Redis 8.4 并行 I/O 对 RediSearch 查询性能的影响

内存效率:极致压榨每一字节

在内存管理方面,新版本对 JSON 数据结构,尤其针对短字符串和同构数值数组,进行了深度瘦身:

  • 短字符串内联:长度在 7 字节以内的短字符串现在支持内联存储(Inlined),在常见场景下可以节省约 37% 的内存。
  • 数值数组压缩:大型数值数组的优化效果更为惊人。引擎现在只需要为每个数组存储一次元素类型,并自动选择最紧凑的安全表示格式——无论是intuint,还是浮点数BF16FP16FP32FP64。根据数值范围的不同,内存占用可缩减 50% 至 92%。

原子操作与集群管理进化

新版本引入了一系列原生原子操作,让开发者在特定场景下,无需再依赖 Lua 脚本:

  • 字符串键增强:通过新的 SET 选项(IFEQIFNEIFDEQIFDNE)以及XDELEX命令,字符串键现在原生支持「比较并交换」和「比较并删除」操作。
  • 多键管理简化:引入MSETEX命令,允许开发者在单次操作中设置多个键值,并统一管理过期条件。

集群部署层面的「原子槽迁移」

  • 早期的 Redis 采用了逐键(Key-by-Key)迁移模式,容易引发重定向风暴、管道断裂、多键操作数据不一致,甚至在故障场景下导致数据丢失。
  • Redis 8.4 引入的原子槽迁移机制,会先将整个槽(Slot)的数据及其迁移期间产生的变更完整传输到目标节点,最后再一次性执行所有权移交。在此期间,客户端仍可与源节点正常交互。这种「平滑过渡」有效避免了迁移中途报错,显著降低了运维风险。
赞(0)
分享到

评论 抢沙发