sql >> Base de Datos >  >> NoSQL >> Redis

Falló la conexión al clúster de Redis

Ok, creo que hay una confusión aquí.

Una implementación de clúster de Redis no es lo mismo que una cantidad de instancias de Redis estándar protegidas por Sentinel. Dos cosas muy diferentes.

La opción de hacer clic para implementar de GCE implementa varias instancias estándar de Redis protegidas por Sentinel, no por Redis Cluster.

ioredis puede manejar ambos tipos de implementaciones, pero debe usar la API correspondiente. Aquí, estaba tratando de usar la API de clúster de Redis, lo que resultó en este error (los comandos relacionados con el clúster no están activados para las instancias estándar de Redis).

Según la documentación de ioredis, se supone que debes conectarte con:

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

Por supuesto, verifique los puertos centinela y el nombre del maestro. ioredis administrará automáticamente el cambio a una instancia esclava cuando la maestra falle, y sentinel se asegurará de que la esclava sea promovida como maestra justo antes.

Tenga en cuenta que dado que usa pub/sub, necesitará varias conexiones redis.