StackExchange.Redis 如何连接到 Sentinel

Boa*_*ler 4 c# redis stackexchange.redis

我想在主控发生变化时收到通知

为此,我想连接到我的哨兵,但连接多路复用器告诉我无法访问它们。

我究竟做错了什么?

 ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:26380,localhost:26381,localhost:26382");
Run Code Online (Sandbox Code Playgroud)

vic*_*510 7

您可以尝试(更新)版本的 StackExchange.Redis,它带有哨兵模式功能。您现在可以使用连接字符串以哨兵模式进行连接,如下所示:

var conn = ConnectionMultiplexer.Connect("172.17.6.45:26379,serviceName=mymaster");
Run Code Online (Sandbox Code Playgroud)

它将自动发现当前主服务器并返回一个托管连接,该连接将为您处理故障转移。如果您想收到主更改的通知,您可以订阅该ConnectionMultiplexer.ConfigurationChanged事件。

  • 除了sentinel主机/端口之外,还需要指定serviceName参数来触发sentinel模式。您还可以在连接字符串或 Redis 配置对象中包含一个哨兵列表,这样即使某些哨兵关闭,只要您的应用程序可以到达其中一个哨兵,一切仍然可以正常工作。 (3认同)