我在一个lua脚本中有这个代码,我从node.js运行.
local stats = {};
stats['orders'] = redis.call('zcard','jobs');
return cjson.encode(stats)
Run Code Online (Sandbox Code Playgroud)
这会返回错误:
Error: ERR value is not an integer or out of range
Run Code Online (Sandbox Code Playgroud)
但是,当我从CLI运行zcard作业时,将返回一个整数.
任何帮助,将不胜感激.
你的Lua脚本运行正常.丢掉分号,这是Lua;).
测试:
redis-cli -p 14130 eval "local stats = {} \
stats['orders'] = redis.call('zcard','azbp.d') \
return cjson.encode(stats)" 0
Run Code Online (Sandbox Code Playgroud)
结果:
"{\"orders\":10424}"
Run Code Online (Sandbox Code Playgroud)
我的猜测是,您的客户端呼叫无效.第一个参数传递给EVAL或EVALSHA应该是参数的数量.在此示例中,您必须传递0.只是猜测一下.
希望这有帮助,TW
| 归档时间: |
|
| 查看次数: |
4791 次 |
| 最近记录: |