1. 程式人生 > >Redis的sentinel機制(sentinel節點IP為:192.168.23.10) “哨兵”

Redis的sentinel機制(sentinel節點IP為:192.168.23.10) “哨兵”

out zookeep systemctl mbo tar cli bsp 機制 登入

    • 萬一主節點打擊,主從模型將會停止工作,為了解決這個問題,Redis提供了一個sentinel(哨兵),以此來實現主從切換的功能,一旦主節點宕機了,sentinel將會在從節點中挑一個作為主節點。與zookeeper類似
  • 編輯/etc/redis-sentinel.conf文件
1: mymaster指定主節點的主機名(可以隨便取一個名),127.0.0.1 6379:指明主節點的IP和端口,2:表示一個節點要成為主節點必須擁有的票數,這裏默認是2,因此最好啟動2個以上centinel進程。這個指令可以寫多個,表明sentinel可以監控多個Redis主從架構。這裏改為1,啟動centinel進程演示 sentinel monitor mymaster 192.168.23.10 6379 1
2:指明主節點多少秒聯系不上,認定主服務器宕機,默認30000毫秒 sentinel down-after-milliseconds mymaster 3000 3:從新指定主服務器後,允許幾臺從服務器去主服務器同步數據 sentinel parallel-syncs mymaster 1 4:指定故障轉移的超時時長,如果180000毫秒,無法在從服務器選擇主服務器,則故障轉移失敗 sentinel failover-timeout mymaster 18000 5: 指定與master通信的密碼 sentinel auth-pass mymaster 123456
  • 啟動systemctl
systemctl start redis-sentinel.service
  • 登入Sentinel,查看主從狀態
redis-cli -p 26379 127.0.0.1:26379> info Sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=192.168.23.10:6379,slaves=2,sentinels=1
  • 停止Redis的master節點,登入sentinel查看節點信息
    (此時的主節點已經是192.168.23.12了)
systemctl stop redis.service [root@7 ~]# redis-cli -p 26379 127.0.0.1:26379> info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=192.168.23.12:6379,slaves=2,sentinels=1 127.0.0.1:26379> sentinel masters

Redis的sentinel機制(sentinel節點IP為:192.168.23.10) “哨兵”