错误:ERR值不是来自LUA脚本中的redis.call('zcard','myzset')的整数或超出范围
我有一个lua脚本中的代码,我从node.js运行。
local stats = {}; stats['orders'] = redis.call('zcard','jobs'); return cjson.encode(stats)
这将返回错误:
Error: ERR value is not an integer or out of range
但是,当我从CLI运行zcard作业时,会返回一个整数。
任何帮助,将不胜感激。
你的Lua脚本工作正常。 把分号丢掉,这是Lua;)。
testing:
redis-cli -p 14130 eval "local stats = {} \ stats['orders'] = redis.call('zcard','azbp.d') \ return cjson.encode(stats)" 0
结果:
"{\"orders\":10424}"
我的猜测是,你的客户端电话是无效的。 传递给EVAL
或EVALSHA
的第一个参数应该是参数的数量。 在这个例子中你必须传递0。 只是猜测的课程。
希望这有助于TW