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

Falha na conexão com o cluster Redis


Ok, acho que há uma confusão aqui.

Uma implantação do Redis Cluster não é igual a várias instâncias padrão do Redis protegidas pelo Sentinel. Duas coisas muito diferentes.

A opção clique para implantar do GCE implanta várias instâncias padrão do Redis protegidas pelo Sentinel, não pelo Redis Cluster.

O ioredis pode lidar com os dois tipos de implantações, mas você precisa usar a API correspondente. Aqui, você estava tentando usar a API do Redis Cluster, resultando nesse erro (os comandos relacionados ao cluster não são ativados para instâncias padrão do Redis).

De acordo com a documentação da ioredis, você deve se conectar com:
var redis = new Redis({
    sentinels: [{ host: hostMaster, port: 26379 },
                { host: hostSlab1, port: 26379 },
                { host: hostSlab2, port: 26379 } ],
    name: 'mymaster'
});

Claro, verifique as portas sentinela e o nome do mestre. O ioredis gerenciará automaticamente a mudança para uma instância escrava quando o mestre falhar, e o sentinela garantirá que o escravo seja promovido como mestre antes.

Observe que, como você usa pub/sub, precisará de várias conexões redis.