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.
Ещё по этой СУБД
- ERR Background save already in progressBackground save already in progress
- ERR bit offset is not an integer or out of rangeBit offset is not an integer or out of range
- ERR Protocol error: invalid multibulk lengthProtocol error: invalid multibulk length
- ERR WATCH inside MULTI is not allowedWATCH inside MULTI is not allowed
- ERR WAIT cannot be used with replica instancesWAIT cannot be used with replica instances
- ERR Background append only file rewriting already in progressAOF rewrite already in progress
- IOERR error or timeout reading from target instanceMIGRATE: I/O error or timeout to target