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
.net Redis副本句柄失败的连接字符串_.net_Redis_Stackexchange.redis_Redis Sentinel - Fatal编程技术网

.net Redis副本句柄失败的连接字符串

.net Redis副本句柄失败的连接字符串,.net,redis,stackexchange.redis,redis-sentinel,.net,Redis,Stackexchange.redis,Redis Sentinel,我认为我的Redis和web应用程序部署环境有问题 如果有人能审查我的配置并处理我发现棘手的问题,我将不胜感激 Redis配置: 我配置了多个Redis副本,一个作为主副本,另一个作为从副本。让我们来简化一下: 服务器1:配置为主服务器 server2~serverN:配置为从属,参考server1 Redis Sentinel可能会也可能不会出现在这个结构中,因为我不能保证至少会有服务器 在我的情况下,只保证服务器1存在,而服务器2到N不存在 Web应用程序部署环境: 我还使用两个连接字符串部

我认为我的Redis和web应用程序部署环境有问题

如果有人能审查我的配置并处理我发现棘手的问题,我将不胜感激

Redis配置:

我配置了多个Redis副本,一个作为主副本,另一个作为从副本。让我们来简化一下:

服务器1:配置为主服务器 server2~serverN:配置为从属,参考server1 Redis Sentinel可能会也可能不会出现在这个结构中,因为我不能保证至少会有服务器

在我的情况下,只保证服务器1存在,而服务器2到N不存在

Web应用程序部署环境:

我还使用两个连接字符串部署了.NETWeb应用程序,一个用于主连接字符串,另一个用于从连接字符串。web服务使用

连接字符串如下所示:

server1,password=myredismaster的myredispassword serverN,password=myredispassword用于Redis从机 当然,如果web应用程序具有serverN的从属连接,则保证serverN存在

问题情况和问题:

现在,我认为有可能出现这样一种情况,即存在一个下落的Redis副本主副本或从副本,并且我的web应用程序通过连接字符串引用下落的Redis副本

我假设,在这种情况下,web应用程序将停止运行,表示无法访问端点


是否可以将无法访问的端点副本优雅地处理到另一个可访问的端点副本?我是否需要配置Redis Sentinel才能做到这一点?或者你会说我尝试访问或处理Redis连接的方法是不正确的吗?提前感谢您的意见。

使用redis可以更好地处理这种情况。您的应用程序连接到redis sentinel端点,该端点:

提供自动故障切换,当主节点出现故障时,其中一个从节点将自动升级为主节点

配置提供程序: Sentinel充当配置提供程序。通过sentinel连接字符串确定主节点和从节点。它还负责将您的读取请求转发到从属服务器,并将写入请求转发到主服务器

应用程序应连接到端点,如下所示: 知识产权: 港口:即26379

确保每当发生故障转移时,驱动程序都会尝试使用sentinel端点连接新选择的主机


redis和sentinel端口必须可以从应用程序服务器访问。

因此,带有主连接字符串的应用程序只能执行写操作,而带有从连接字符串的应用程序只能执行读操作?@Astro-um,一个应用程序既有主连接,也有从连接,但它使用主设备的连接字符串进行写入,使用从设备的连接字符串进行读取。我认为这是使用复制的预期行为?我想知道会发生什么,我是否需要处理从机停机,应用程序尝试读取,或主机停机,应用程序尝试写入的情况。在这两种情况下,它都应该失败。因为它不知道如果一个连接到一个端点失败,在何处连接。这通常是用哨兵坦克来澄清的!