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)
RedisQue 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.
Autres entrées pour ce moteur
- 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 (erreur de protocole : longueur multibulk invalide)
- 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 (erreur d'I/O ou timeout vers la cible)