【发布时间】:2015-05-28 15:34:09
【问题描述】:
正如 StackExchange.Redis Basics documentation 中所述,您可以连接到多个 Redis 服务器,并且 StackExchange.Redis 将自动确定主/从设置。引用相关部分:
更复杂的场景可能涉及主/从设置;对于这种用法,只需指定构成该逻辑 redis 层的所有所需节点(它将自动识别主节点):
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("server1:6379,server2:6379");
我执行了一个测试,在该测试中我触发了故障转移,这样主服务器会宕机一段时间,导致旧的从服务器成为新的主服务器,而旧的主服务器成为新的从服务器。我注意到,尽管发生了这种变化,StackExchange.Redis 仍继续向旧主服务器发送命令,导致写入操作失败。
关于上述问题:
- StackExchange.Redis 如何决定使用哪个端点?
- 应该如何使用多个端点(如上例)?
我还注意到,对于每个连接,StackExchange.Redis 都会打开 两个 物理连接,其中一个是某种订阅。这到底是干什么用的?是否被 Sentinel 实例使用?
【问题讨论】: