Redis Lua脚本不起作用

舒拉文·库玛(Shravan kumar)

我创建了一个redis lua脚本来执行基于关键数据类型的命令:

local keyType = redis.call("TYPE", KEYS[1])
if (keyType == "string")
then
return redis.call("GET",KEYS[1])
else
return nil
end

每次执行它时,它都会返回null。请帮助纠正脚本。

Not_a_Golfer

对响应的redis.call返回结果如下表所示:({"ok": "string"}如果类型为字符串,则当然)

因此,为了正确检查,您应该将代码更改为:

local keyType = redis.call("TYPE", KEYS[1]).ok

其余的代码将正常运行。

问题是这样的:TYPE命令是少数几个返回“简单字符串”或“状态” redis答复的命令之一(有关响应类型,请参见redis协议规范)。在redis lua文档中指出:

Redis状态回复-> Lua表,其中包含包含状态的单个ok字段

这是怎么回事。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章