在redis sentinel客户端恢复master的问题

时间:2014-03-13 16:20:25

标签: redis node-redis redis-sentinel

我开始使用主从设置来处理redis。主站和从站设置在具有不同端口的同一台机器中。为了处理主/从故障转移,似乎redis有哨兵。我正在努力实施哨兵。

我的redis.conf for Master:

bind 127.0.0.1(local Machine)
Port 6379

我的redis1.conf for Slave:

bind 127.0.0.1
port 6380
slaveof 127.0.0.1 6379

我的sentinel.conf有:

sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1

sentinel monitor resque 127.0.0.1 6380 1
sentinel down-after-milliseconds resque 10000
sentinel failover-timeout resque 180000
sentinel parallel-syncs resque 5

我正在使用https://www.npmjs.org/package/redis-sentinel-client作为哨兵客户端。

我只使用一个sentinel.conf文件用于主服务器和从服务器。我运行了两台服务器并通过kill主服务器进行检查。奴隶如预期般成为主人。从http://redis.io/topics/sentinel-old开始,在Resurrecting master部分中,提到将关闭的主设备将被添加为新选主设备的从设备。但是当我把我的主人带下来时,奴隶成了主人。但是老主人仍然不是新主人的奴隶。这是使用哨兵的正确方法吗?

  

有关查找如何使用sentinel来处理故障转移的任何建议。   或节点的任何其他sentinel-client包..?

4 个答案:

答案 0 :(得分:0)

在Windows中没有对redis和sentinel的适当支持。当我使用最新的redis-stable版本在虚拟ubuntu中检查相同时,每件事情都可以。

答案 1 :(得分:0)

使用2.8版本的redis(适用于Windows 64位),因为2.6版本的哨兵不会复活大师。

答案 2 :(得分:0)

除了使用2.8之外,您的Sentinel配置应仅监控主节点。任何从站都将被自动检测到。

所以你的哨兵配置中唯一的东西应该是

sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1

答案 3 :(得分:0)

就我而言(redis的新手),哨兵可以获取奴隶形式大师的信息。所以为方便起见,你可以这样做:

  1. 主从设置;
  2. sentinel monitor master,这意味着slave的信息不在sentinel.conf中(或通过连接到sentinel,并执行命令“ sentinel monitor mymaster 127.0.0.1 6379 2 ”)
  3. “redis-cli”到哨兵,执行命令“ sentinel failover mymaster ”(如你所知,“mymaster”是主人的名字),那么你可以看到主人和奴隶切换了。
  4. 更重要的是,你必须确保哨兵的数量足够。 例如如果quonum为2,请确保哨兵的数量至少为3。 连接到任何哨兵,执行“ SENTINEL哨兵<主要名称> ”,或执行“ SENTINEL ckquorum<主要名称> ”进行检查。