【问题标题】:Unrecognized option or bad number of args for: '--evalsha'无法识别的选项或错误数量的参数:'--evalsha'
【发布时间】:2020-04-20 11:48:05
【问题描述】:

当我为以下脚本运行 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 它。

【问题讨论】:

    标签: redis lua redis-cli


    【解决方案1】:

    --evalsha 标志不是有效的redis-cli 选项。您可以使用--eval 来运行您的脚本,例如

    redis-cli --eval ./scripts/restoreSymbols.lua
    

    但是如果你想使用evalsha来运行一个加载的脚本,你需要做的是

    redis-cli evalsha a8a6b471abf42b6cc584444e9d269e9807d96ff1 0
    

    请注意,您必须传递 0 以表明您没有将任何参数传递给命令。

    【讨论】:

    • 如此简单。抱歉问:)
    • 没什么可遗憾的 :) 这是一个合理的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    相关资源
    最近更新 更多