DBAtlas · Atlas für Datenbankbetrieb

BUSY: BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE (Redis ist mit einem Skript beschäftigt)

Redis

Was bedeutet das?

Ein lang laufendes Lua-Skript oder eine Function wird ausgeführt und hat busy-reply-threshold überschritten (vor Redis 7 lua-time-limit; Standard 5000 ms). Da Redis single-threaded ist, kann es währenddessen keine anderen Befehle verarbeiten; nur SCRIPT KILL (bei Functions FUNCTION KILL) oder SHUTDOWN NOSAVE wird akzeptiert.

Ursache

Eine Endlosschleife oder ein sehr lang laufendes Lua-Skript bzw. eine Function, aufwendige Berechnungen, ein Skript, das über große Datenmengen iteriert, oder ein schlecht geschriebener EVAL-Aufruf.

Lösung

Hat das Skript keine Daten geändert, stoppe es: SCRIPT KILL. Hat das Skript bereits geschrieben, funktioniert SCRIPT KILL nicht; als letztes Mittel zur Wahrung der Datenkonsistenz kann SHUTDOWN NOSAVE nötig sein (nicht gespeicherte Daten gehen verloren; Vorsicht). Schreibe Skripte kurz und deterministisch. Teile lange Operationen in Stücke auf. Überprüfe die Einstellung busy-reply-threshold (früher lua-time-limit).

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank