gpt4 book ai didi

lua 按键访问表元素

转载 作者:可可西里 更新时间:2023-11-01 10:57:57 30 4
gpt4 key购买 nike

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

local key = KEYS[1]

-- Check if the user account exists
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 - Loading script ./scripts/debit_script.lua to redis...
[ 'id',
'47',
'accType',
'1',
'creditLimit',
'75000',
'creditConsumed',
'null' ]

但是当我尝试从上面的 lua 表返回单个值时(比如 accnt['id'] 或 accnt.id,我得到的是 null。这是程序的新版本,它通过键访问表中的单个条目, 但失败了。

local key = KEYS[1]

-- Check if the user account exists
local accnt = redis.call('hgetall', key);
if next(accnt) == nil then return 404 end

return accnt['id'];

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

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

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

return type(accnt)

结果如下:

[2016-04-17 20:42:02.229] [DEBUG] AuthServer - Loading script ./scripts/debit_script.lua to redis...
table
debit result: table

所以,我想知道当我们查询redis哈希时,lua返回的是一个常规数组还是一个表。感谢任何人指出我正确的解决方案。

最佳答案

好的。它是一个表,键为数字 1..n,值为 Redis 返回的值。我在想我的 redis npm 会把返回数据转换成一个合适的表来模仿 redis 的散列。我将不得不自己做。

关于lua 按键访问表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678226/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com