lua通过键访问表元素

我正在使用Lua脚本读取Redis存储中哈希键的内容。我的代码如下:

local key = KEYS[1]

--检查用户账户是否存在
local accnt = redis.call('hgetall',key);
if next(accnt) == nil then return 404 end

return accnt;

当我运行此程序时,我获得以下正确的结果。

[2016-04-17 19:27:07.807] [DEBUG] AuthServer - 加载脚本./scripts/debit_script.lua到Redis...。
['id''47''accType''1''creditLimit''75000''creditConsumed''null' ]

但是当我尝试从lua表中返回单个值时(例如accnt \ ['id' ]或accnt.id),我会得到null。这里是访问由键在表中的单个条目的程序的新版本,但失败了。

local key = KEYS[1]

--检查用户账户是否存在
local accnt = redis.call('hgetall',key);
if next(accnt) == nil then return 404 end

return accnt['id'];

我听说Lua表是键值对的关联数组。因此,我访问表中的条目的代码似乎是正确的。是不是?

我在这里做错了什么,如何正确地访问单个键?

\*\*编辑\*\* 为了找到“accnt”的类型,我修改了代码以返回

return type(accnt)

结果如下:

[2016-04-17 20:42:02.229] [DEBUG] AuthServer - 加载脚本./scripts/debit_script.lua到Redis...。

借记结果:表

因此,我在想当我们查询Redis哈希时,lua返回一个常规数组还是一个表。感谢任何指向正确解决方案的人。

点赞
用户1059639
用户1059639

将下面翻译成中文并且保留原本的 markdown 格式

OK。这是一个键是1..n的数字,值是Redis返回的内容的表。我认为我的redis npm会将返回数据转换成模拟Redis哈希的适当表格。我现在必须自己做。

2016-04-17 15:28:23