NOSCRIPT: NOSCRIPT: подходящий скрипт не найден. Используйте EVAL
RedisЧто это значит?
Дайджест SHA1 скрипта Lua, вызванного через EVALSHA, не найден в кэше скриптов сервера. Redis не знает скрипта, соответствующего этому хешу.
Почему возникает?
Сервер был перезапущен или кэш скриптов очищен командой SCRIPT FLUSH, скрипт никогда не загружался или кэш пуст на новом узле после failover.
Как исправить
Выполните скрипт с полным телом через EVAL (Redis кэширует его автоматически) или сначала загрузите его через SCRIPT LOAD и используйте возвращённый SHA в EVALSHA. В приложении перехватывайте ошибку NOSCRIPT и реализуйте резервную логику перехода с EVALSHA на EVAL. Многие клиентские библиотеки Redis делают это автоматически.
Ещё по этой СУБД
- CROSSSLOTCROSSSLOT: ключи в запросе не попадают в один и тот же слот
- MOVEDMOVED slot ip:port (перенаправление в кластере)
- ASKASK slot ip:port (перенаправление в кластере)
- EXECABORTEXECABORT: транзакция отменена из-за предыдущих ошибок
- NOPERMNOPERM: у этого пользователя нет прав на выполнение команды или доступ к одному из ключей
- ERR value is not an integer or out of rangeERR: значение не является целым числом или вне диапазона
- ERR value is not a valid floatERR: значение не является допустимым float