我在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作业时,会返回一个整数。
任何帮助都将不胜感激。
答案 0 :(得分:5)
你的Lua脚本运行正常。扔掉分号,它是Lua;)。
测试:
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