Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Verbindung zum Redis-Cluster fehlgeschlagen

Ok, ich glaube, hier liegt eine Verwirrung vor.

Eine Redis-Cluster-Bereitstellung ist nicht dasselbe wie eine Reihe von Redis-Standardinstanzen, die von Sentinel geschützt werden. Zwei sehr unterschiedliche Dinge.

Die Click-to-Deploy-Option von GCE stellt eine Reihe von standardmäßigen Redis-Instanzen bereit, die von Sentinel und nicht von Redis Cluster geschützt werden.

ioredis kann beide Arten von Bereitstellungen handhaben, aber Sie müssen die entsprechende API verwenden. Hier haben Sie versucht, die Redis-Cluster-API zu verwenden, was zu diesem Fehler führte (clusterbezogene Befehle sind für Standard-Redis-Instanzen nicht aktiviert).

Laut Ioredis-Dokumentation sollen Sie sich verbinden mit:

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

Überprüfen Sie natürlich die Sentinel-Ports und den Namen des Masters. ioredis verwaltet automatisch den Wechsel zu einer Slave-Instanz, wenn der Master ausfällt, und Sentinel stellt sicher, dass der Slave kurz zuvor zum Master befördert wird.

Beachten Sie, dass Sie mehrere Redis-Verbindungen benötigen, da Sie Pub/Sub verwenden.