Redis 7.2
提示
来自deepseek解释
原文链接:https://redis.io/docs/latest/develop/whats-new/7-2/
Redis 7.2 版本引入了新的能力,包括改进的地理空间查询和简化的 JSON 数据操作。性能优化、客户端增强和行为改进进一步提升了 Redis 的效率、安全性和可用性。 以下是这些更新的详细说明。
新特性
带多边形搜索的地理空间查询
Redis Search 现在支持使用多边形搜索查询地理空间数据,使开发者能够高效地在复杂的地理边界内过滤和检索数据。
简化的 JSON 数据操作
JSON 现在包含两个用于改进数据处理的新命令:
JSON.MERGE:将给定的 JSON 值合并到匹配的路径中,支持更灵活的更新。JSON.MSET:基于指定的键-路径-值三元组同时设置或更新多个 JSON 值,提高了处理结构化数据时的效率。
改进
现有数据结构
Redis 数据类型在性能方面有显著提升。常用于游戏排行榜的有序集合,现在性能提升幅度达到 30% 到 100%。
此外,Redis 流消费者跟踪已得到增强,可以提供更好的消费者活动可视性,并且当目标键不再存在时,被阻塞的流命令现在会返回不同的错误信息。
Redis Search 改进
Redis Search 获得了多项更新,包括优化的 SORT BY 操作和 RESP3 中新增的 FORMAT 响应,提高了效率和可读性。
脚本执行增强
客户端跟踪现在会监控脚本执行期间实际读取的键,提高了键使用跟踪的准确性。此外,阻塞命令将在执行前重新评估安全检查,确保符合更新后的权限。标准化的 ACL 失败消息和错误代码现在提供了更清晰的错误处理。
客户端和复制增强
基于 TLS 的复制现在支持服务器名称指示(SNI),提高了与安全部署的兼容性。HELLO 命令的行为也得到了改进,仅在成功执行时修改客户端状态,确保更可预测的客户端行为。
变更
不兼容变更
Redis 7.2 引入了若干向后不兼容的变更。Lua 脚本不再支持 print() 函数,在只读脚本中阻塞 PFCOUNT 和 PUBLISH,以及命令执行期间时间采样冻结。错误处理更新包括错误响应中的大小写变更、ZPOPMIN/ZPOPMAX 与 count 0 的新行为,以及 XCLAIM/XAUTOCLAIM 的调整。ACL 变更影响命令分类和键访问权限,而命令自省现在包含每个子命令的统计信息。Redis 现在允许在加载期间执行某些 CONFIG 命令,并且仅在命令执行时跟踪统计信息。
过期键现已从副本索引中删除
过期键现在会从 Redis Search 副本索引中删除,确保在数据不存在时查询返回空数组而非 nil。
其他变更
Redis Stack 7.2 不再包含 Graph 功能。更多详情请参见 RedisGraph 终止支持公告。
组件版本
Redis 7.2 版本包含以下组件: