错误: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}" 

我的猜测是,你的客户端电话是无效的。 传递给EVALEVALSHA的第一个参数应该是参数的数量。 在这个例子中你必须传递0。 只是猜测的课程。

希望这有助于TW