redis 7.2未新增数据类型,而是增强json、search及字符串/有序集合功能:json原生支持、search内置向量混合搜索、范围操作精度提升,且依赖resp3协议与客户端驱动适配。

Redis 7.2 对数据结构的更新不是“新增类型”,而是对已有结构的功能增强和语义扩展——尤其集中在 JSON、SEARCH(向量+混合搜索)、以及字符串/有序集合底层行为的精细化控制上。
JSON 数据结构支持从插件变为原生命令
此前需加载 RedisJSON 模块才能用 JSON.SET/JSON.GET,7.2 开始将核心 JSON 操作纳入默认命令集(无需 MODULE LOAD),且支持嵌套路径更新、原子字段增减、类型校验等:
-
JSON.SET新增XX(仅当 key 存在时覆盖)、NX(仅当 key 不存在时设置)参数,语义更贴近SETNX -
JSON.NUMINCRBY可对 JSON 内任意数字字段做原子增减,比如JSON.NUMINCRBY user:1001 $.points 5 -
JSON.TYPE和JSON.LEN支持深层路径,如JSON.LEN user:1001 $.orders[*].items - 注意:原生 JSON 不支持全文索引,仍需搭配
FT.CREATE建立搜索索引才能高效查询字段内容
SEARCH 模块升级为内置向量与混合搜索能力
FT.CREATE 和 FT.SEARCH 在 7.2 中不再是第三方模块,而是随 Redis 二进制包默认启用;关键变化在于向量字段支持和过滤逻辑重构:
Redis 8.2.3 是一款安全优先的高性能键值存储系统。该版本紧急修复了可能引发远程代码执行(RCE)的高危漏洞(CVE-2025-62507),并解决了 HyperLogLog 及 Cuckoo Filter 等数据结构在特定场景下的崩溃问题。建议所有用户立即升级,以保障生产环境的系统稳定与数据安全。
- 定义 schema 时可直接声明
VECTOR字段:FT.CREATE idx SCHEMA title TEXT vector VECTOR FLAT 1000 DISTANCE_METRIC COSINE -
FT.SEARCH支持*=>[KNN 5 @vector $vec]语法做近邻检索,且能与传统TEXT或NUMERIC过滤条件组合(即混合搜索) - 向量字段写入必须用
JSON.SET或HSET,但索引构建和查询完全由SEARCH模块管理,不暴露底层存储细节 - 性能影响:开启向量索引会显著增加内存占用(尤其
FLAT类型),小规模数据建议用HNSW替代
字符串和有序集合的范围操作能力强化
虽然没新增类型,但 GETRANGE、SETRANGE、ZRANGEBYSCORE 等命令增加了精度控制和边界处理选项:
-
GETRANGE和SETRANGE现在支持负偏移量(如-1表示末尾),且对超出当前长度的写入自动补\x00(而非报错) -
ZRANGEBYSCORE新增MIN/MAX修饰符,例如ZRANGEBYSCORE zset (1.5 (2.5表示开区间,避免旧版需手动加+/-的歧义 -
STRLEN对空字符串返回0(旧版某些场景返回nil),与GET行为一致,减少判空逻辑分支 - 这些改动看似微小,但在高并发幂等校验或实时排行榜场景中,能减少客户端侧的边界判断代码
真正容易被忽略的是:所有新功能都依赖 Redis 7.2 的新协议解析器,如果客户端驱动未适配 RESP3 或未声明 CLIENT SETNAME,部分 JSON 路径语法或向量查询可能静默降级为错误响应——别只盯着服务端升级,驱动版本同步验证才是落地关键。










