0

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

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

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

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

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 主机在 26380 上运行。所有端口都是开放的,名称/IP 解析正确等,所以我认为这不是基础设施问题。如果有用,我正在运行从 MS Open Tech 页面下载的 Redis (2.8.17)。

有没有人对可能是什么问题有任何想法,或者关于如何排除故障的建议?我很难找到在 Windows 上设置 Redis 的 HA 实例的准确文档,因此对于解决这些类型的问题有用的任何命令将不胜感激。

4

1 回答 1

0

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

sentinel auth-pass redismaster <myPassword>

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

于 2015-03-10T14:06:36.370 回答