You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis 7.0.4中Lua脚本启用RESP3协议的正确方法

解决Redis Lua脚本使用RESP3协议的问题

为什么Lua脚本中执行HELLO命令报错

Redis出于安全与连接一致性的限制,HELLO属于连接状态管理类命令,不在Lua脚本允许执行的命令列表中,因此直接在脚本内调用HELLO 3会触发This Redis command is not allowed from script错误。

正确配置RESP3并让Lua脚本使用的方法

1. 持久化启用RESP3(避免重启后回退)

修改Redis配置文件(通常为redis.conf),添加或修改以下配置项:

resp3-enabled yes

保存配置后重启Redis服务,此后所有新建立的连接默认都会使用RESP3协议,无需每次手动执行切换命令。

2. 验证RESP3是否生效

连接Redis后,执行命令查看当前协议版本:

CLIENT INFO | grep proto

若返回proto=3,则说明当前连接已启用RESP3。

3. 让Lua脚本自动使用RESP3返回格式

只要当前连接使用的是RESP3协议,Lua脚本的返回结果会自动遵循RESP3的格式(支持布尔值、空值、集合等原生数据类型的直接返回),无需在脚本内做任何额外操作。

补充:临时切换单个连接到RESP3(仅当前连接有效)

若无需全局启用RESP3,仅针对单个连接临时切换,可在连接后执行:

HELLO 3

但该方式仅对当前连接生效,连接断开后会自动回退到RESP2,适合测试场景。

内容的提问来源于stack exchange,提问作者Mopparthy Ravindranath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:55:17