redis - 无法识别的选项或args的参数数量错误: '--evalsha'

标签 redis lua redis-cli

当我为以下脚本运行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来指示您没有将任何参数传递给命令。

关于redis - 无法识别的选项或args的参数数量错误: '--evalsha',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59552721/

相关文章:

ruby-on-rails-3 - 带有 Resque 和 Rails 的 Redis : ERR command not allowed when used memory > 'maxmemory'

python - Celery:什么时候应该选择 Redis 作为消息代理而不是 RabbitMQ?

opengl - 使用 premake4 构建项目文件 - 如何?

python - Redis 发布订阅和消息队列

asp.net - 在 SQL Server 中使用 Redis

node.js - 在 nodejs 中跟踪哪些用户在线的最佳方法是什么?

c++ - 如何使用 C API 创建嵌套的 Lua 表

nginx - 使用 lua 和 nginx 时出错

Redis - 获取集群中的总数据集大小

redis - 在具有 redis-cli 密码的 redis 中删除带有模式的键