首页/数据/Redis 进阶速查/RESP3 与 HELLO 握手
性能与排障129 条

RESP3 与 HELLO 握手

HELLO 3 把连接协议切换为 RESP3,支持字典、集合等原生类型映射;扩容新客户端前确认服务端与 SDK 的协议支持。

Redis 进阶速查数据更新于 2026-10-13

RESP3 与 HELLO 握手

HELLO 3 让当前连接从 RESP2 切换到 RESP3:协议层新增映射、集合、布尔、双精度等原生类型,推送消息也有了统一形式,客户端缓存等功能依赖这套机制。切换前要确认服务端版本支持 HELLO 命令、客户端 SDK 已实现 RESP3 解析,否则问题会以类型解析错误的形式出现,而不是干脆的连接失败。

基本信息

相关命令HELLO 与 HELLO 3
服务端要求Redis 6 及以上支持 HELLO 与 RESP3
客户端要求SDK 需实现 RESP3 类型解析,各版本差异较大
主要收益类型语义更贴合,推送消息形式统一
混部状态RESP2 与 RESP3 连接同时存在是常态

典型使用场景

  • 新客户端接入:按连接粒度切换,逐个验证后再推广
  • 客户端缓存:该能力建立在 RESP3 的推送机制之上
  • 类型处理简化:字典类结构不必在客户端做额外转换
  • 灰度验证:先让部分连接走新协议,对比错误率与延迟
  • 排障对照:复现问题时先确认连接实际使用的协议版本

切换与核对

切换与核对
redis-cli HELLO 3              # 切换当前交互连接为 RESP3
redis-cli -3                   # 启动时即以 RESP3 建立连接
redis-cli HELLO                # 查看当前连接协议与服务端信息
redis-cli HELLO 2              # 切回 RESP2 做对照
redis-cli INFO server | grep redis_version   # 确认服务端版本是否支持

切换核对项

核对项要求不满足的后果
服务端版本支持 HELLO 命令命令直接报错,无法切换
SDK 解析能力已实现 RESP3 类型映射解析异常而非连接失败,定位更费时
扩展能力依赖如客户端缓存需客户端配套实现功能不可用
回退路径能按连接切回 RESP2出问题只能整体回滚
协议切换按客户端逐一验证,不要一次性全量打开:混部期间两套协议并存是常态,服务端不会因为部分连接使用 RESP3 而出问题。
SDK 兼容性没验证就全量切换,错误会集中爆发且表现为解析异常;把它当客户端改造项目来排期,而不是一次配置变更。

易错点

  • SDK 兼容性未验证就全量切换:解析错误集中出现,排查方向容易被带偏
  • 把客户端缓存等能力误判为纯协议升级:这些能力还需要客户端侧配套实现
  • 没有回退路径:出问题只能整体回滚,影响面被放大
  • 服务端版本过旧:不支持 HELLO 时切换直接报错,上线前应先核对版本

数据来源与参考

  • Redis 官方文档:RESP3 协议说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌