Redis哨兵機制,一主二從
注:Redis哨兵切換,建議一主多從
一、一主二從
教程步驟:https://blog.csdn.net/liu59412/article/details/103877113
二、哨兵配置(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 並重啓後狀態