Gig*_*igi 17 redis stackexchange.redis
如StackExchange.Redis Basics文档中所述,您可以连接到多个Redis服务器,StackExchange.Redis将自动确定主/从设置.引用相关部分:
更复杂的情况可能涉及主/从设置; 对于此用法,只需指定构成该逻辑redis层的所有所需节点(它将自动识别主节点):
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("server1:6379,server2:6379");
Run Code Online (Sandbox Code Playgroud)
我执行了一个测试,其中我触发了一个故障转移,这样主设备会下降一点,导致旧的从设备成为新的主设备,旧的主设备成为新的主设备.我注意到尽管发生了这种变化,但StackExchange.Redis仍然向旧主机发送命令,导致写操作失败.
以上问题:
我还注意到,对于每个连接,StackExchange.Redis打开两个物理连接,其中一个是某种订阅.这究竟用于什么?它是否被Sentinel实例使用?
什么应该发生的存在,它采用了大量的东西(特别是定义复制配置),以确定哪个是主,并指挥交通,在相应的服务器(尊重“服务器”参数,默认为“宁可大师”,但总是向主机发送写操作)。
如果收到“无法写入只读从设备”(我不记得确切的文本)错误,它将尝试重新建立配置,并应自动切换以遵守此要求。不幸的是,redis不会广播配置更改,因此该库无法提前检测到这一点。
请注意,如果使用库方法来更改master,则它可以利用pub / sub来立即自动检测到该更改。
重新建立第二个连接:用于pub / sub;它会提前将其旋转,因为默认情况下它将尝试监听特定于库的配置广播。
| 归档时间: |
|
| 查看次数: |
5867 次 |
| 最近记录: |