BUSY: BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE(スクリプト実行中でビジー)
Redis意味
長時間実行される Lua スクリプトまたは関数が実行中で、busy-reply-threshold (Redis 7 より前は lua-time-limit。デフォルト 5000 ms) を超えた。Redis はシングルスレッドのため、この間は他のコマンドを処理できない。SCRIPT KILL (関数の場合は FUNCTION KILL) または SHUTDOWN NOSAVE のみ受け付けられる。
原因
無限ループまたは非常に長時間実行される Lua スクリプト/関数、重い計算、大量データをループするスクリプト、または不適切に書かれた EVAL 呼出し。
対処方法
スクリプトがデータを変更していなければ停止する: SCRIPT KILL。スクリプトがすでに書き込みを行っている場合 SCRIPT KILL は機能しない。データの一貫性を保つ最後の手段として SHUTDOWN NOSAVE が必要になることがある (保存されていないデータは失われる。注意すること)。スクリプトは短く決定的に書く。長い処理は分割する。busy-reply-threshold (旧 lua-time-limit) の設定を見直す。
同じデータベースの他の項目
- MASTERDOWNMASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'(マスターとのリンクが切断)
- CLUSTERDOWNCLUSTERDOWN The cluster is down / Hash slot not served(クラスタ停止 / ハッシュスロット未提供)
- LOADINGLOADING Redis is loading the dataset in memory(データセットをメモリにロード中)
- MISCONFMISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk(RDB スナップショットをディスクに保存できない)
- CROSSSLOTCROSSSLOT Keys in request don't hash to the same slot(キーが同じスロットにハッシュされない)
- MOVEDMOVED slot ip:port (クラスタリダイレクト)
- ASKASK slot ip:port (クラスタリダイレクト)