Windows 上的 Redis - 哨兵不通信

Redis on Windows - Sentinels not communicating

我正在设置我的第一个 Redis 框架,到目前为止我有以下内容:

Server1: 
  - Redis master
  - 3 Redis Sentinels (quorum set to 2)
Server2:
  - Redis slave
  - 3 Redis Sentinels (quorum set to 2)

主机和从机似乎工作正常,数据正在从主机同步到从机。当我安装并启动 sentinel 时,它们似乎 运行 正常,因为如果我连接到它们中的任何一个,并且 运行 sentinel masters,它将显示哨兵指向我的 Redis 主控并显示各种属性。

然而,实际的故障转移似乎并不奏效。例如,如果我连接到我的 Redis 主服务器并 运行 debug segfault 使其失败,则不会发生到从服务器的故障转移。 None 哨兵记录任何内容,因此看起来它们实际上并未连接。这是我的哨兵的配置:

port 26381
sentinel monitor redismaster ServerName 26380 2
sentinel down-after-milliseconds redismaster 10000
sentinel failover-timeout redismaster 180000
sentinel parallel-syncs redismaster 1
logfile "nodes/sentinel1/sentinel.log"

如您所见,此哨兵 运行 在 26381 上(以及后续哨兵 运行 在 26382 和 26383 上)。我的 Redis master 运行s 在 26380 上。所有端口都打开,names/IPs 正确解析等等,所以我认为这不是基础架构问题。如果它有用,我是从 MS Open Tech 页面下载的 运行ning Redis (2.8.17)。

有没有人对可能出现的问题有任何想法,或者对如何解决问题有任何建议?我很难找到有关设置 H.A 的准确文档。 Windows 上的 Redis 实例,因此非常感谢任何可用于解决此类问题的命令。

我想通了。我在问题中忽略的一件事是我的 Redis 主配置文件中指定了 masterauth 配置,因此我的客户必须提供密码才能连接。我在我的哨兵配置中错过了这个,并且没有提供密码。哨兵日志记录没有表明这一点,所以对我来说并不明显。一旦我添加了这个:

sentinel auth-pass redismaster <myPassword>

对于我的哨兵配置文件,一切都开始正常工作。