我正在寻找使用StackExchange.Redis的高可用性。 我的第一种方法是尝试使用Redis Sentinel,但由于该软件包的功能而没有成功。
我在Docker中有一个6节点集群(3个主节点和3个从节点)。关闭或暂停主容器时,我的应用程序可以连接到这3个主节点,但我的应用程序抛出 RedisTimeoutException ,因为它无法访问之前连接的节点。
这是运行cluster nodes
命令before
暂停主服务器的输出
这是运行cluster nodes
命令after
暂停主服务器的输出
当前,我要连接到3个主机
private const string Host = "10.0.0.2:7000, 10.0.0.3:7001, 10.0.0.4:7002";
private static readonly ConnectionMultiplexer Connection = ConnectionMultiplexer.Connect(Host);
答案 0 :(得分:0)
尝试使用
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(nodesList);
这将需要连接到Redis Cluser。
答案 1 :(得分:0)
现在已在连接字符串级别获得哨兵支持,因此如果您在连接详细信息中设置服务名称并提供哨兵的地址,则此应该“正常工作”。