作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在从 node.js 运行的 lua 脚本中有这段代码。
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 jobs
时,会返回一个整数。
最佳答案
您的 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
关于node.js - 错误 : ERR value is not an integer or out of range from redis. 调用 ('zcard' ,'myzset' ) 在 LUA 脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22314460/
我在从 node.js 运行的 lua 脚本中有这段代码。 local stats = {}; stats['orders'] = redis.call('zcard','jobs'); return
我是一名优秀的程序员,十分优秀!