我在从node.js运行的lua脚本中有这段代码。
local stats = {};
stats['orders'] = redis.call('zcard','jobs');
return cjson.encode(stats)
这将返回错误:但是,当我从CLI运行
zcard jobs
时,将返回一个整数。 最佳答案
您的Lua脚本工作正常。扔掉分号,这是Lua;)。
测试:
redis-cli -p 14130 eval "local stats = {} \
stats['orders'] = redis.call('zcard','azbp.d') \
return cjson.encode(stats)" 0
结果:
"{\"orders\":10424}"
我的猜测是,您的客户端 call 无效。传递给
EVAL
或EVALSHA
的第一个参数应该是参数的数量。在此示例中,您必须传递0。只是猜测当然。希望这会有所帮助,TW
关于node.js - 错误:ERR值不是整数,也不是redis的范围。在LUA脚本中调用('zcard' ,'myzset'),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22314460/