如何修复“Redis 正忙于运行脚本”错误

如何修复“Redis 正忙于运行脚本”错误

我的服务器由于收到来自 Redis 的以下错误而反复崩溃:

BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE.

但是,我似乎无法找到确定该消息所指的“脚本”是什么的方法,以及如何终止该脚本。如能得到任何帮助,我将不胜感激。

答案1

该错误意味着存在长时间运行的服务器端 Lua 脚本。此类脚本由EVAL或者EVALSHARedis 命令。“长时间运行”表示脚本的执行时间已超过lua-time-limit配置指令定义的阈值(默认为 5000 毫秒)。

由于 Redis 是单线程的,因此它会在超时后响应“-BUSY”错误,以表明它仍然很忙。您可以等待脚本执行结束,或者(例如,如果您遇到无限循环)发出错误建议的命令之一来尝试停止脚本。

SCRIPT KILL仅当脚本未执行任何写入操作时才会成功。如果脚本进行了写入,则停止它的唯一方法是关闭服务器而不通过 保存更改SHUTDOWN NOSAVE

相关内容