Wie verwendet StackExchange.Redis mehrere Endpunkte und Verbindungen?

Wie in der StackExchange.Redis @ erkläBasics Dokumentation können Sie eine Verbindung zu mehreren Redis-Servern herstellen, und StackExchange.Redis ermittelt automatisch das Master / Slave-Setup. Zitieren des relevanten Teils:

Ein komplizierteres Szenario könnte ein Master / Slave-Setup beinhalten. Geben Sie für diese Verwendung einfach alle gewünschten Knoten an, aus denen diese logische Redis-Schicht besteht (der Master wird automatisch identifiziert):

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("server1:6379,server2:6379");

Ich habe einen Test durchgeführt, bei dem ich ein Failover ausgelöst habe, sodass der Master kurz ausfiel und der alte Slave zum neuen Master und der alte Master zum neuen Slave wurde. Ich habe festgestellt, dass trotz dieser Änderung, StackExchange.Redis sendet weiterhin Befehle an den alten Master, wodurch Schreibvorgänge fehlschlagen.

Fragen zu den oben genannten:

Wie entscheidet StackExchange.Redis, welcher Endpunkt verwendet wird?Wie sollten mehrere Endpunkte (wie im obigen Beispiel) verwendet werden?

Ich habe auch festgestellt, dass StackExchange.Redis für jede Verbindung @ öffnezwe physische Verbindungen, von denen eine Art Abonnement ist. Wofür wird das genau verwendet? Wird es von Sentinel-Instanzen verwendet?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage