Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Por que meu script Redis Lua não pode atualizar atomicamente as chaves em diferentes nós do Redis Cluster?


Receio que você tenha entendido mal a documentação. (E eu concordo que não é muito claro.)

As operações do Redis, sejam comandos ou scripts Lua, só podem funcionar quando todas as chaves estão no mesmo servidor. O objetivo da regra de passagem de chave é permitir que os servidores de cluster descubram para onde enviar o script e falhem rapidamente se todas as chaves não vierem do mesmo servidor (que foi o que aconteceu no seu caso).

Portanto, é sua responsabilidade garantir que todas as chaves nas quais você deseja operar estejam localizadas no mesmo servidor. A maneira de fazer isso é usar tags de hash para forçar o hash das chaves para o mesmo slot. Veja a documentação para mais detalhes sobre isso.