DBAtlas · Atlas für Datenbankbetrieb

ERR Number of keys can't be greater than number of args: EVAL/EVALSHA: numkeys exceeds argument count

Redis

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank