【问题标题】:'(error) ERR Error running script (call to ...)' when using --eval for LUA script'(error) ERR Error running script (call to ...)' 当使用 LUA 脚本的 --eval 时
【发布时间】:2019-07-30 19:34:41
【问题描述】:

运行此命令时收到错误消息:

redis-cli --eval myscript.lua myzset 3 "one"

错误信息:

(error) ERR Error running script (call to f_9c623c243d74e75a4fe64de7a6826b47f8d7
d400): @user_script:1: @user_script: 1: Lua redis() command arguments must be st
rings or integers

Lua 脚本:

local ans = redis.call('ZINCRBY', KEYS[1], ARGV[1], ARGV[2])
if   tonumber(ans) <= 0 then
    redis.call('ZREM', KEYS[1], ARGV[2]) 
end
return (tonumber(ans) < 1 and '-1' or ans)

目标是使用ZINCRBY 自动删除零值或负值。

我正在使用:

Windows 7 64 位 Redis 版本:3.2.100

您的帮助将不胜感激。

【问题讨论】:

  • 试试redis-cli --eval myscript.lua myzset , 3 "one"(注意它之前/之后的逗号和空格)。
  • @ItamarHaber 问题已解决,谢谢先生...您可以创建评论以便我将其标记为已解决吗?

标签: redis redis-cluster


【解决方案1】:

您遇到的问题是因为您没有分隔 KEYS 和 ARGS - 在命令行中使用逗号来这样做。另外请注意,由于逗号是分隔符,因此您需要使用额外的空格以确保它不被视为键的一部分。

像这样:

redis-cli --eval myscript.lua myzset , 3 "one"

【讨论】:

    猜你喜欢
    • 2022-12-27
    • 2022-01-25
    • 2020-11-26
    • 2021-12-27
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 2021-08-24
    • 2021-08-24
    相关资源
    最近更新 更多