DBAtlas · Atlas de operações de banco de dados

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)

Redis

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

Abrir no DBAtlas →

Mais entradas deste banco