DBAtlas · Атлас эксплуатации баз данных

BUSY: BUSY: Redis занят выполнением скрипта. Можно вызвать только SCRIPT KILL или 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).

Открыть в DBAtlas →

Ещё по этой СУБД