redis宕機如何解決?若是是項目上線的宕機呢?

咱們先來了解一下  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

相關文章
相關標籤/搜索