2014-03-13 80 views
1

我開始使用master slave設置redis。主站和從站設置在不同端口的同一臺機器上。爲了處理主/從故障,看起來redis具有標識。我正試圖實施哨兵。在redis sentinel客戶端中復活master的問題

我對師父redis.conf:

bind 127.0.0.1(local Machine) 
Port 6379 

我的奴隸redis1.conf:

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文件用於主站和從站。我運行了兩臺服務器,並通過終止主服務器進行檢查。奴隸成爲預期的主人。從http://redis.io/topics/sentinel-old,在Resurrecting master section下,提到下降的master將被添加爲新的選舉master的slave。但是當我把主人放下時,奴隸成爲主人。但老主人仍然不是新主人的奴隸。這是使用哨兵的正確方式..?

任何有關如何使用sentinel來處理故障轉移的建議。 或任何其他哨兵客戶端軟件包的節點..?

回答

0

在windows中沒有對redis和sentinel的適當支持。當我使用最新的redis-stable版本檢查虛擬ubuntu時,每件事情都正常。

0

使用redis的2.8版本(適用於Windowws 64位),因爲2.6版本的sentinel不會重新生成master。

0

除了使用2.8,你的哨兵配置只應該監視主節點。任何奴隸將被自動檢測。

因此,在您的定點配置的唯一的事情應該是

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 
0

至於我而言(Redis的的新手),哨兵可以獲取從機的信息形成master.So爲了方便起見,你可以做如下:

  1. 主從設立;
  2. 定點監控主,這意味着從設備的信息是不是在sentinel.conf(或通過連接到定點,和exec命令「定點監控mymaster 127.0.0.1 6379 2」)
  3. 「redis的-CLI 「哨兵,執行命令」哨兵故障轉移mymaster「(如你所知,」mymaster「是主人的名字),那麼你可以看到,主和奴隸切換。

更重要的是,你必須確保哨兵的數量是足夠的。 例如如果quonum是2,請確保哨兵的數量至少爲3。 連接到任何定點,EXEC 「SENTINEL哨兵<主名稱>」,或者exec 「SENTINEL ckquorum <主名稱>」 來檢查它。