我正在编写一个 Lua 脚本,这是我的脚本:
local session = redis.call('HGETALL', accessToken)
if (session == nil) then
redis.log(redis.LOG_WARNING, 'Session not found : ' .. accessToken)
return
end
我尝试了多个 if 条件,但找不到如何正确验证该值是否为 null。另外,我不希望之前调用 EXISTS 命令的开销。
我尝试通过 telnet 调用它,redis 的响应是 *0
这是我试过的列表:
if (session == nil) then
if (session == '[]') then
if (session == '{}') then
if (session == '*0') then
if (session == '') then
if (session == '(empty list or set)') then
if (not session) then
这些条件都不起作用。有人有想法吗?
最佳答案
一些在线快速搜索似乎表明 HGETALL
(以及其他返回键/值对的函数)的结果是一个顺序键/值对表。所以 {"key1", "val1", "key2", "val2"}
。
这表示空结果(假定它不是 nil
)将是一个空表(即 session[1] == nil
)。
关于lua - Lua中HGETALL的返回类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741209/