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

ERR Number of keys can't be greater than number of args: EVAL/EVALSHA: numkeys exceeds argument count

Redis

Что это значит?

При выполнении Lua-скрипта (EVAL/EVALSHA/FCALL) указанное число ключей (numkeys) больше числа аргументов, фактически переданных команде. Redis отклоняет команду, так как не может разделить массивы KEYS и ARGV.

Почему возникает?

Синтаксис EVAL: 'EVAL script numkeys key [key ...] arg [arg ...]'. Значение numkeys рассчитано неверно (задано слишком большим), либо ожидаемые ключи так и не были добавлены в команду. Частая ошибка программирования.

Как исправить

Сделайте numkeys точно равным числу ключей, фактически переданных команде. Используйте обёртку EVAL клиентской библиотеки (обычно она принимает KEYS и ARGV отдельными списками), чтобы numkeys вычислялся автоматически. При вызове скрипта правильно разделяйте ключи в KEYS, а прочие параметры — в ARGV.

Открыть в DBAtlas →

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