DBAtlas · Atlas d'exploitation des bases de données

ERR Number of keys can't be greater than number of args: EVAL/EVALSHA: numkeys exceeds argument count (numkeys dépasse le nombre d'arguments)

Redis

Que signifie cette erreur ?

Lors de l'exécution d'un script Lua (EVAL/EVALSHA/FCALL), le nombre de clés indiqué (numkeys) est supérieur au nombre d'arguments réellement passés à la commande. Redis refuse la commande car il ne peut pas séparer les tableaux KEYS et ARGV.

Cause

La syntaxe d'EVAL est 'EVAL script numkeys key [key ...] arg [arg ...]'. La valeur numkeys a été mal calculée (trop élevée) ou les clés attendues n'ont jamais été ajoutées à la commande. Erreur de programmation courante.

Comment la corriger

Faites en sorte que numkeys soit exactement égal au nombre de clés réellement passées à la commande. Utilisez le wrapper EVAL de votre bibliothèque cliente (qui prend généralement KEYS et ARGV comme listes séparées) pour que numkeys soit calculé automatiquement. Lors de l'appel du script, répartissez correctement les clés dans KEYS et les autres paramètres dans ARGV.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur