ERR Number of keys can't be greater than number of args: EVAL/EVALSHA: numkeys exceeds argument count (numkeys excede o número de argumentos)
RedisO que significa?
Ao executar um script Lua (EVAL/EVALSHA/FCALL), o número de chaves especificado (numkeys) é maior que o número de argumentos realmente passados ao comando. O Redis rejeita o comando porque não consegue dividir os arrays KEYS e ARGV.
Por que acontece?
A sintaxe do EVAL é 'EVAL script numkeys key [key ...] arg [arg ...]'. O valor de numkeys foi calculado errado (definido alto demais) ou as chaves esperadas nunca foram adicionadas ao comando. Um erro de programação comum.
Como resolver
Torne numkeys exatamente igual ao número de chaves realmente passadas ao comando. Use o wrapper de EVAL da sua biblioteca cliente (que geralmente recebe KEYS e ARGV como listas separadas) para que numkeys seja calculado automaticamente. Ao chamar o script, separe corretamente as chaves em KEYS e os demais parâmetros em ARGV.
Mais entradas deste banco
- 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 (o offset de bit não é um inteiro ou está fora do intervalo)
- ERR Protocol error: invalid multibulk lengthProtocol error: invalid multibulk length (erro de protocolo: comprimento multibulk inválido)
- 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 (WAIT não pode ser usado em instâncias réplica)
- 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