/ / Identification du maître Redis à l’aide de sentinal à partir de nodeJS - node.js, redis, node-redis, redis-sentinel

Identification du maître Redis à l’aide de sentinal à partir de nodeJS - node.js, redis, node-redis, redis-sentinel

J'ai 2 serveurs Redis un maître et l'autreesclave (réplication). Une fois que le maître est en panne pour une raison quelconque, l'esclave deviendra maître et continuera d'agir en tant que maître jusqu'à ce que quelque chose de mal se produise sur ce serveur.

J'ai un serveur nodeJS à partir duquel je veux pousserdonnées aux Redis qui fonctionnent actuellement en tant que maître. J'ai une sentinelle qui surveille les serveurs Redis mais ma question est de savoir comment récupérer les informations principales de sentinel à l'aide de nodeJS. et s’il existe un moyen, envoie-t-il automatiquement les données au serveur redis alternatif sans redémarrage du service?

Réponses:

1 pour la réponse № 1

le ioredis soutient la sentinelle. comme ça:

var redis = new Redis({
sentinels: [{ host: "localhost", port: 26379 }, { host: "localhost", port: 26380 }],
name: "mymaster"
});

redis.set("foo", "bar");

Le nom identifie un cluster Redis, que vous devez également spécifier dans redis sentinel.conf. Vous pourriez vous référer à ceci page sur la façon de configurer sentinel.

À propos de votre deuxième question, voir ci-dessous:

ioredis garantit que le nœud auquel vous vous êtes connecté est toujours maître, même après un basculement. Lorsqu'un basculement se produit, au lieu d'essayer dePour vous reconnecter au nœud défaillant (qui sera rétrogradé en tant qu’esclave lorsqu’il sera à nouveau disponible), ioredis demandera au nouveau nœud maître des sentinelles et se connectera à ce dernier. Toutes les commandes envoyées lors du basculement sont mises en file d'attente et seront exécutées lors de la nouvelle connexion. est établi pour qu'aucune des commandes ne soit perdue.

Et node-redis ne le supporte pas maintenant.