ERR Number of keys can't be greater than number of args: EVAL/EVALSHA: numkeys exceeds argument count (numkeys supera el número de argumentos)
Redis¿Qué significa?
Al ejecutar un script Lua (EVAL/EVALSHA/FCALL), el número de claves especificado (numkeys) es mayor que el número de argumentos realmente pasados al comando. Redis rechaza el comando porque no puede separar los arrays KEYS y ARGV.
¿Por qué ocurre?
La sintaxis de EVAL es 'EVAL script numkeys key [key ...] arg [arg ...]'. El valor numkeys se calculó mal (demasiado alto) o las claves esperadas nunca se añadieron al comando. Un error de programación habitual.
Cómo solucionarlo
Haga que numkeys sea exactamente igual al número de claves que realmente se pasan al comando. Use el wrapper de EVAL de su biblioteca cliente (que normalmente recibe KEYS y ARGV como listas separadas) para que numkeys se calcule automáticamente. Al llamar al script, separe correctamente las claves en KEYS y los demás parámetros en ARGV.
Más entradas de este motor
- 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 (el offset de bit no es un entero o está fuera de rango)
- ERR Protocol error: invalid multibulk lengthProtocol error: invalid multibulk length (error de protocolo: longitud multibulk no válida)
- 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 (WAIT no puede usarse en instancias réplica)
- 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