当我运行redis-cli script load "$(cat ./scripts/restoreSymbols.lua)"
以下脚本时:
local list = {}
local result = redis.call('scan', 0, 'MATCH', 'symbol:*', 'COUNT', 1000)
for _, v in ipairs(result[2]) do
list[#list+1] = redis.call('hgetall', v)
end
return list
我得到了sha,a8a6b471abf42b6cc584444e9d269e9807d96ff1
但是当我跑步时redis-cli --evalsha a8a6b471abf42b6cc584444e9d269e9807d96ff1
我得到:
Unrecognized option or bad number of args for: '--evalsha'
这怎么可能?我不需要任何选项或参数。该脚本正在运行(使用调试器对其进行调试),并且在我正常--eval时也可以运行。
该--evalsha
标志不是有效的redis-cli
选项。您可以--eval
用来运行脚本,例如
redis-cli --eval ./scripts/restoreSymbols.lua
但是,如果您想使用evalsha
运行已加载的脚本,则需要做的是
redis-cli evalsha a8a6b471abf42b6cc584444e9d269e9807d96ff1 0
请注意,您必须传递0
来表示您没有将任何参数传递给命令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句