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

回到顶部