Lua脚本和Redis-如何测试None值
以下是我的lua脚本:
local ckid = redis.pcall('get',KEYS[1]) local meta = redis.call('hgetall', ckid)
return {ckid, meta}
如果第一次调用没有退出键,我将不执行第二次调用。
所以…我不知道None的返回值是什么。在python中,返回值将为None。
if ckid ~= '???????' then local meta = redis.call('hgetall', ckid)
else
local meta = 'empty'
retrun {ckid, meta}
所以…我该怎么办lua?
local ckid = redis.pcall('get',KEYS[1]) if ckid ~= nil then
local meta = redis.call('hgetall', ckid)
else
local meta = 'none'
local ckid = 'none'
end
return {ckid, meta}
使用零时
ResponseError: ERR Error running script (call to f_1400713412b0063a26eb0dc063f53a4e3be26380): user_script:12: Script attempted to access unexisting global variable 'meta'
回答:
如果在if语句中使用定义局部变量,则它仅在if语句中存在。在手册中查看局部变量范围。
尝试
local ckid = redis.pcall('get',KEYS[1]) local meta
if ckid ~= nil then
meta = redis.call('hgetall', ckid)
else
meta = 'none'
ckid = 'none'
end
return {ckid, meta}
以上是 Lua脚本和Redis-如何测试None值 的全部内容, 来源链接: utcz.com/qa/401326.html