【发布时间】:2012-10-23 18:48:54
【问题描述】:
下面是我的 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}
当使用 nil..
ResponseError: ERR Error running script (call to f_1400713412b0063a26eb0dc063f53a4e3be26380): user_script:12: Script attempted to access unexisting global variable 'meta'
【问题讨论】:
-
其实redis.call()在lua中返回
false,在redis中返回nil。