Todas as suas perguntas são respondidas no
EVAL
página, mas já que você perguntou...:
Qual é a diferença?
KEYS
é usado para passar nomes de chaves enquanto ARGS
deve ser para qualquer outra coisa. Isso não é exatamente aplicado (ou seja, na maioria das vezes você ficaria bem em misturá-los), mas pode levar a possíveis problemas se não for seguido.
Como o Redis trata os valores na matriz KEYS?
O conteúdo de
KEYS
são verificados para verificar se todas as chaves estão disponíveis para o fragmento do Redis que está executando o script. Esse mecanismo está em vigor para permitir a execução de scripts em uma implantação de cluster Redis.
E se, no meu script, eu tiver que usar chaves geradas dinamicamente em tempo de execução?
Veja as respostas anteriores - isso é possível, mas você iria contra as recomendações. Seu script será seguro para ser executado apenas em uma instância autônoma do Redis e, como esse comportamento não é especificado, ele pode ser interrompido em versões futuras.