Redis 副本处理失败的连接字符串

Redis replica handle failed connection strings

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

如果有人可以检查我的配置并处理我认为棘手的情况,我将不胜感激。


Redis配置:

我配置了多个Redis副本,一个作为master,其他作为slave。为了简化起见,我们说:

Redis sentinel(s) 可能存在也可能不存在于此结构中,因为我不能保证至少会有服务器。

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


Web应用部署环境:

我还使用两个连接字符串部署了 .NET Web 应用程序,一个用于主服务器,另一个用于其中一个从服务器。 Web 服务使用

连接字符串如下所示:

当然,如果一个web应用有serverN的slave连接,那么serverN是保证存在的。


问题情况(和问题):

现在我认为可能会出现这样的情况,即存在一个已失效的 Redis 副本(主或从),并且我的 Web 应用程序通过连接字符串引用该已失效的 Redis 副本。

我认为在这种情况下,Web 应用程序会宕机,表示端点无法访问。

是否可以将无法到达的端点副本优雅地处理到另一个可到达的端点副本?我是否需要配置 Redis 哨兵才能执行此操作?或者您甚至会说我尝试访问或处理 Redis 连接的方法不正确?预先感谢您的意见。

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

  1. 提供自动故障转移,当master失效时其中一个slave节点自动提升为mater。

  2. 配置提供商: Sentinel 充当配置提供程序。它通过哨兵连接字符串确定主节点和从节点。它还负责将您的读取请求转发给 slave 并写入 master。

您的应用程序应该像下面这样连接到端点: 知识产权: 端口:即 26379

确保驱动程序在发生故障转移时尝试使用哨兵端点连接新选出的主服务器。

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