ERR Number of keys can't be greater than number of args: EVAL/EVALSHA: numkeys exceeds argument count
RedisWas bedeutet das?
Beim Ausführen eines Lua-Skripts (EVAL/EVALSHA/FCALL) ist die angegebene Anzahl der Keys (numkeys) größer als die Zahl der tatsächlich an den Befehl übergebenen Argumente. Redis lehnt den Befehl ab, weil es die Arrays KEYS und ARGV nicht aufteilen kann.
Ursache
Die EVAL-Syntax lautet 'EVAL script numkeys key [key ...] arg [arg ...]'. Der Wert numkeys wurde falsch berechnet (zu hoch gesetzt), oder die erwarteten Keys wurden dem Befehl nie hinzugefügt. Ein häufiger Programmierfehler.
Lösung
Setze numkeys exakt auf die Zahl der tatsächlich an den Befehl übergebenen Keys. Nutze den EVAL-Wrapper deiner Client-Bibliothek (der KEYS und ARGV meist als getrennte Listen entgegennimmt), damit numkeys automatisch berechnet wird. Teile beim Aufruf des Skripts Keys korrekt in KEYS und andere Parameter in ARGV auf.
Weitere Einträge zu dieser Datenbank
- 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