Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
StackExchange.Redis如何使用多个端点和连接?_Redis_Stackexchange.redis - Fatal编程技术网

StackExchange.Redis如何使用多个端点和连接?

StackExchange.Redis如何使用多个端点和连接?,redis,stackexchange.redis,Redis,Stackexchange.redis,如StackExchange.Redis中所述,您可以连接到多个Redis服务器,StackExchange.Redis将自动确定主/从设置。引用相关部分: 更复杂的场景可能涉及主/从设置;对于这种用法,只需指定组成该逻辑redis层的所有所需节点(它将自动识别主节点): 我执行了一个测试,在该测试中我触发了一个故障切换,这样主设备将停机一段时间,导致旧的从设备成为新的主设备,而旧的主设备成为新的从设备。我注意到,尽管有这种变化,StackExchange.Redis仍不断向旧主机发送命令,导致

如StackExchange.Redis中所述,您可以连接到多个Redis服务器,StackExchange.Redis将自动确定主/从设置。引用相关部分:

更复杂的场景可能涉及主/从设置;对于这种用法,只需指定组成该逻辑redis层的所有所需节点(它将自动识别主节点):

我执行了一个测试,在该测试中我触发了一个故障切换,这样主设备将停机一段时间,导致旧的从设备成为新的主设备,而旧的主设备成为新的从设备。我注意到,尽管有这种变化,StackExchange.Redis仍不断向旧主机发送命令,导致写入操作失败

关于上述问题:

  • StackExchange.Redis如何决定使用哪个端点
  • 应该如何使用多个端点(如上例所示)
  • 我还注意到,对于每个连接,StackExchange.Redis都会打开两个物理连接,其中一个是某种订阅。这到底是用来干什么的?Sentinel实例是否使用它?

    应该发生的是,它使用许多东西(特别是定义的复制配置)来确定哪个是主服务器,并在适当的服务器上引导流量(关于“服务器”参数,默认为“首选主服务器”),但它总是向主机发送写操作)

    如果收到“无法写入只读从机”(我记不清确切的文本)错误,它将尝试重新建立配置,并应自动切换以遵守这一点。不幸的是,redis没有广播配置更改,因此库无法提前检测到这一点

    请注意,如果使用库方法更改master,它可以利用pub/sub立即自动检测该更改


    关于第二个连接:那将是酒吧/酒吧;它会提前将其旋转,因为默认情况下,它会尝试侦听库特定的配置广播。

    感谢您的响应。我不确定我是否明白。。。更改主机/库特定配置广播的库方法是什么意思?另外,当我导致主/从故障切换时,我实际上等待了几秒钟,并尝试再次发送一个集合,多次,它总是不断地将它发送给旧的主。@Gigi我将不得不调查
    集合
    问题;另一方面:
    IServer.MakeMaster(…)
    @marcGravel您提到的“服务器”参数是什么?我在ConfigurationOptions类型中找不到它。@JeanLourenço我指的是单个操作的命令标志
    ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("server1:6379,server2:6379");