NOTBUSY No scripts in execution right now: No scripts in execution right now(当前没有正在执行的脚本)
Redis含义
您发送了 SCRIPT KILL 或 FUNCTION KILL,但当前没有正在运行(且可终止)的 Lua 脚本/函数。由于没有可终止的对象,命令被拒绝。
原因
在您尝试停止脚本时,它已经执行完毕;SCRIPT KILL 发送到了错误的节点(而脚本在另一个实例上运行);或 BUSY 状态在 SCRIPT KILL 之前已自行解除。通常是时序问题。
解决方法
如果实际上没有卡住的脚本,则无需处理;这是一个安全/提示性的回复。如果收到 BUSY 错误(脚本超过了 busy-reply-threshold,Redis 7 之前名为 lua-time-limit),在脚本实际运行的正确节点上尝试 SCRIPT KILL(函数使用 FUNCTION KILL)。如果脚本已修改数据,SCRIPT KILL 无效;作为最后手段可能需要 SHUTDOWN NOSAVE。将长脚本拆分,并遵守时间限制。
同一数据库的其他条目
- ERR DISCARD without MULTIDISCARD without MULTI(未执行 MULTI 就调用 DISCARD)
- BUSYGROUP Consumer Group name already existsConsumer group already exists(消费者组已存在)
- NOGROUP No such key or consumer groupNo such key or consumer group in stream(stream 中不存在该键或消费者组)
- DENIED Redis is running in protected modeRedis is running in protected mode(Redis 正以保护模式运行)
- ERR Can't execute '<cmd>': only (P|S)SUBSCRIBE / (P|S)UNSUBSCRIBE / PING / QUIT / RESET are allowed in this contextCommand not allowed in subscribe context(在订阅上下文中不允许该命令)
- ERR SELECT is not allowed in cluster modeSELECT is not allowed in cluster mode(集群模式下不允许 SELECT)
- ERR wrong number of arguments for commandWrong number of arguments for command(命令的参数数量错误)