Redis
 sql >> Database >  >> NoSQL >> Redis

Connessione al cluster Redis non riuscita

Ok, penso che ci sia una confusione qui.

Una distribuzione Redis Cluster non è la stessa di un numero di istanze Redis standard protette da Sentinel. Due cose molto diverse.

L'opzione click-to-deploy di GCE distribuisce una serie di istanze Redis standard protette da Sentinel, non Redis Cluster.

ioredis può gestire entrambi i tipi di implementazione, ma devi usare l'API corrispondente. In questo caso, stavi tentando di utilizzare l'API del cluster Redis, ottenendo questo errore (i comandi relativi al cluster non sono attivati ​​per le istanze Redis standard).

Secondo la documentazione di ioredis, dovresti connetterti con:

var redis = new Redis({
    sentinels: [{ host: hostMaster, port: 26379 },
                { host: hostSlab1, port: 26379 },
                { host: hostSlab2, port: 26379 } ],
    name: 'mymaster'
});

Ovviamente controlla le porte della sentinella e il nome del comandante. ioredis gestirà automaticamente il passaggio a un'istanza slave quando il master si guasta e la sentinella si assicurerà che lo slave venga promosso come master poco prima.

Nota che poiché usi pub/sub, avrai bisogno di diverse connessioni redis.