Redis哨兵機制,一主二從
注:Redis哨兵切換,建議一主多從
一、一主二從
教程步驟:https://www.cnblogs.com/pinghengxing/p/11139997.html
二、哨兵配置(sentinel.conf)
哨兵機制也分單台以及集群,在此我們只構建哨兵集群
cd /usr/software/redis/redis-ms/
1.創建哨兵目錄
/usr/software/redis/redis-ms/sentinel/26001
/usr/software/redis/redis-ms/sentinel/26002
/usr/software/redis/redis-ms/sentinel/26003
2.修改sentinel.conf
cd /usr/software/redis/redis-ms/sentinel/26001
vim sentinel.conf
#修改如下鍵值對 (自己創建對應的日志、數據文件目錄)
# bind 127.0.0.1 192.168.1.1 protected-mode no port 26001 daemonize yes pidfile /var/run/redis-sentinel_26001.pid logfile "/usr/software/redis/redis-ms/sentinel/26001/log/redis-sentinel.log" dir /usr/software/redis/redis-ms/sentinel/26001/tmp #設置 主名稱 ip地址 端口號 參入選舉的哨兵數 #配置哨兵需要監控的主節點ip和端口,最后的2代表,如果有2個哨兵主觀認為主節點down了, #那么就客觀認為主節點down掉了,開始發起投票選舉新主節點的操作。多個主節點配置多個。 sentinel monitor mymaster 140.143.26.123 7001 2 # switched off. #設置連接master和slave時的密碼,注意的是sentinel不能分別為master和slave設置不同的密碼, #因此master和slave的密碼應該設置相同。 sentinel auth-pass mymaster ww sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000
針對其他的sentinel.conf只需要修改配置文件的地址以及端口(改為26002,26003)即可
3、修改主redis.conf的以下配置
masterauth ww# 主服務器配置masterauth作用主要是為了后期sentinel引入后重新選舉master並且7001端口redis重新加入主從復制時必備的,否則會出現權限不足
三、啟動測試、
1、對redis-sentinel做軟連接(可以在任意目錄執行redis-sentinel )
ln -s /usr/software/redis/redis-sentinel /usr/bin/
2、首先啟動三台redis
然后啟動三台哨兵,如下:
運行后發現sentinel.conf的配置文件被重寫了,從內容可以看出有哪些slave和sentinel
四、故障轉移
kill 掉 7001的主節點
發現主節點轉移到7003上
重新啟動7001后,7001變為從節點,但發現連接不上主節點master_link_status:down,
這是因為我沒有在7001節點上設置
masterauth ww,設置后重啟,連接正常
設置masterauth ww 並重啟后狀態