咱們先來了解一下 bridge網絡模式redis
他會建立一個docker0橋,看完這個咱們就會知道redis哨兵機制的端口了。docker
以後繼續研究redis宕機的解決辦法!服務器
宕機: 服務器中止服務網絡
若是隻有一臺redis, 確定會形成數據丟失。spa
多臺reids或者是Redis集羣,服務器宕機還有辦法。.net
1.從的redis宕機怎麼解決?3d
配置主從複製的時候才配置從的redis, 從的會從主的redis中讀取主的redis的操做日誌,來達到主從複製。日誌
1.只要把從的redis從新啓動,再和主的進行鏈接就能夠code
2.若是從redis上面作數據的持久化,能夠直接鏈接到主的上面,只要實現增量備份blog
2.主的redis宕機怎麼解決
要先確認是否作持久化,若沒有作持久化,從新啓動主的redis就會形成數據丟失。
1.先把從的redis升級爲主的redis. 執行slave of one命令
2.原來的主的能夠從新啓動,做爲從的redis, 鏈接到主的redis上面作主從複製。
可使用Redis 提供哨兵 機制來簡化上面的操做。
哨兵的配置:
1. 複製redis中sentinel.conf,根據狀況進行配置
#當前Sentinel服務運行的端口 port 26379 #Sentinel服務運行時使用的臨時文件夾 dir /tmp #sentinel鏈接的主redis, 此redis鏈接端IP端口是172.17.0.1 6379 #將此redis判斷爲失效至少須要1個 Sentinel進程的贊成, 只要贊成Sentinel的數量不達標,自動failover就不會執行 sentinel monitor master 172.17.0.1 6379 1 #指定了在執行故障轉移時,最多能夠由多少個從Redis實例在同步新的主實例,在從Redis實例較多的狀況下這個數字越小,同步的時間越長 #完成故障轉移所需的時間就越長 sentinel parallel-syncs master 1 #若是未在18000ms內完成故障遷移,就默認未失敗 sentinel failover-timeout master 180000 #redis的sentinel的日誌 logfile "/var/log/sentinel_log.log"
可使用哨兵搭建高可用服務器,哨兵模式還提供其餘功能,好比監控、通知、爲客戶端提供配置等。
關於使用哨兵搭建高可用服務器,能夠參考http://www.javashuo.com/article/p-vuclpumg-by.html來實現!
2018-09-05 20:30:11