如何在StackExchange.Redis中使用Redis群集?

时间:2019-03-11 20:52:00

标签: .net redis stackexchange.redis

我正在寻找使用StackExchange.Redis的高可用性。 我的第一种方法是尝试使用Redis Sentinel,但由于该软件包的功能而没有成功。

我在Docker中有一个6节点集群(3个主节点和3个从节点)。关闭或暂停主容器时,我的应用程序可以连接到这3个主节点,但我的应用程序抛出 RedisTimeoutException ,因为它无法访问之前连接的节点。

这是运行cluster nodes命令before暂停主服务器的输出 enter image description here

这是运行cluster nodes命令after暂停主服务器的输出 enter image description here

这是我的应用抛出的异常 enter image description here

当前,我要连接到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);

2 个答案:

答案 0 :(得分:0)

尝试使用

    RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(nodesList);

这将需要连接到Redis Cluser。

答案 1 :(得分:0)

现在已在连接字符串级别获得哨兵支持,因此如果您在连接详细信息中设置服务名称并提供哨兵的地址,则此应该“正常工作”。