Oké, ik denk dat er hier verwarring is.
Een Redis Cluster-implementatie is niet hetzelfde als een aantal standaard Redis-instanties die door Sentinel worden beschermd. Twee heel verschillende dingen.
De click-to-deploy-optie van GCE implementeert een aantal standaard Redis-instanties die worden beschermd door Sentinel, niet door Redis Cluster.
ioredis kan beide soorten implementaties aan, maar u moet de bijbehorende API gebruiken. Hier probeerde u de Redis Cluster API te gebruiken, wat resulteerde in deze fout (clustergerelateerde opdrachten worden niet geactiveerd voor standaard Redis-instanties).
Volgens de ioredis-documentatie moet u verbinding maken met:
var redis = new Redis({
sentinels: [{ host: hostMaster, port: 26379 },
{ host: hostSlab1, port: 26379 },
{ host: hostSlab2, port: 26379 } ],
name: 'mymaster'
});
Controleer natuurlijk de schildwachtpoorten en de naam van de master. ioredis regelt automatisch de omschakeling naar een slave-instantie wanneer de master faalt, en sentinel zorgt ervoor dat de slave net daarvoor als master wordt gepromoveerd.
Merk op dat aangezien je pub/sub gebruikt, je verschillende redis-verbindingen nodig hebt.