Redis Sentinel
作用:Sentinel多個(gè)節(jié)點(diǎn)會完成Redis的監(jiān)控以及故障轉(zhuǎn)移的處理,然后通知客戶端。
客戶端不直接連接Redis服務(wù),而連接Redis Sentinel。在Redis Sentinel中記錄master節(jié)點(diǎn),Sentinel對所有master 與 slave 進(jìn)行監(jiān)控,Sentinel可以監(jiān)控多套master-slave通過master-name配置標(biāo)識。
故障轉(zhuǎn)移流程:
- 多個(gè)Sentinel發(fā)現(xiàn)并確認(rèn)master有問題具體數(shù)量在配置中配置
- 選舉出一個(gè)Sentinel作為領(lǐng)導(dǎo),選出一個(gè)slave作為master
- 通知其余slave成為新的master的slave,通知客戶端主從發(fā)生的變化
- 等待老的master復(fù)活成為新master的slave
Redis Sentinel的配置
redis-01.conf(redis sentinel的默認(rèn)端口是26379)
port 26379
daemonize yes # 是否以守護(hù)進(jìn)程的方式啟動
dir "/redis/data" # 工作目錄
logfile "26379.log" # 日志
sentinel monitor master01 127.0.0.1 9000 2 # master01主節(jié)點(diǎn) ip 端口 2-表示2個(gè)sentinel檢測的master01故障進(jìn)行故障轉(zhuǎn)移
sentinel down-after-milliseconds master01 30000 # 檢測超過30秒沒有正常響應(yīng)為master01故障
sentinel parallel-syncs master01 1 # 故障轉(zhuǎn)移對老的節(jié)點(diǎn)對新的master進(jìn)行復(fù)制是并發(fā)/串行 1-表示每次只能復(fù)制1個(gè)
sentinel failover-timeout master01 180000 # 故障轉(zhuǎn)移時(shí)間