Redis Lua脚本不起作用
我创建了一个redis lua脚本来执行基于关键数据类型的命令:
local keyType = redis.call("TYPE", KEYS[1])if (keyType == "string")
then
return redis.call("GET",KEYS[1])
else
return nil
end
每次执行时,它都会返回null。请帮助纠正脚本。
回答:
对响应的redis.call
返回形式如下表:({"ok": "string"}
如果类型为字符串,则返回)
因此,为了正确检查,您应该将代码更改为:
local keyType = redis.call("TYPE", KEYS[1]).ok
其余代码将正常运行。
问题是这样的:TYPE命令是少数几个返回“简单字符串”或“状态”
redis答复的命令之一(有关响应类型,请参见redis协议规范)。在redis
lua文档中指出:
Redis状态回复-> Lua表,带有包含状态的单个ok字段
这是怎么回事。
以上是 Redis Lua脚本不起作用 的全部内容, 来源链接: utcz.com/qa/424789.html