DBAtlas · Atlas de operaciones de bases de datos

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.

Abrir en DBAtlas →

Más entradas de este motor