您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Redis-Lua表作为返回值-为什么这不起作用

Redis-Lua表作为返回值-为什么这不起作用

如果您参考RedisEVAL文档,则可以看到Redis将Lua表转换为Redis回复所使用的规则:

因此,除了特殊情况2和3之外,Redis假设您的表是一个序列(即列表),这意味着它会retv[1], retv[2], ...一直读取直到遇到一个nil元素(此处是相应的源代码部分)。

这解释了为什么retv["test"]在您的情况下会被忽略。

如果您使用以下方法更改代码

local retv = {"This", "is", "a", "bug" }
retv[5] = 1000
return retv

然后,此附加元素被返回:

1) "This"
2) "is"
3) "a"
4) "bug"
5) (integer) 1000
其他 2022/1/1 18:17:20 有387人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶