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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/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 - Fatal编程技术网

带有主/从服务器的StackExchange.Redis客户端-如何处理发生故障的主服务器

带有主/从服务器的StackExchange.Redis客户端-如何处理发生故障的主服务器,redis,Redis,我正在使用StackExchange.Redis在Redis上进行概念验证设置,使用master/slave和sentinel设置以实现高可用性,我在使用StackExchange.Redis时遇到了一些问题 我已经用最新的Redis服务器成功地安装了3个Ubuntu虚拟机,一个服务器是带Sentinel的Master,一个是带Sentinel的Slave,另一个是纯Sentinel。通过使用CLI,我可以看到从主服务器到从服务器的复制工作正常,当我停止主服务器(sudo services re

我正在使用StackExchange.Redis在Redis上进行概念验证设置,使用master/slave和sentinel设置以实现高可用性,我在使用StackExchange.Redis时遇到了一些问题

我已经用最新的Redis服务器成功地安装了3个Ubuntu虚拟机,一个服务器是带Sentinel的Master,一个是带Sentinel的Slave,另一个是纯Sentinel。通过使用CLI,我可以看到从主服务器到从服务器的复制工作正常,当我停止主服务器(sudo services redis_6379 stop)时,从服务器升级到主服务器

但是,在尝试使用StackExchange.Redis时

连接多路复用器redis;
ConfigurationOptions=ConfigurationOptions.Parse(“172.20.74.40:6379172.20.74.41:6379”);
options.AbortOnConnectFail=false;
redis=ConnectionMultiplexer.Connect(选项);
我发现,当两台服务器都启动时,这种方法可以很好地工作,但当主服务器关闭时,Sentinel会正确响应,从服务器升级为主服务器,但从应用程序到集群的连接每次尝试都需要12到40秒的时间(即,它永远不会变得更快)


我是不是遗漏了什么?我正在尝试实现高可用性,但这种滞后显然是不可接受的。

StackExchange.Redis不支持Sentinel。 关于这件事有一个很大的讨论

简而言之:StackExchange不使用Sentinel。他们没有为它构建支持的用例

您可以看到Marc Gravell描述了它如何处理多个端点