Redis主從復制+哨兵機制


1、Redis主從復制

  (1)概述:

    redis的復制功能是支持多個數據庫之間的數據同步。一類是主數據庫(master)一類是從數據庫(slave),主數據庫可以進行讀寫操作,當發生寫操作的時候自動將數據同步到從數據庫,而從數據庫一般是只讀的,並接收主數據庫同步過來的數據,一個主數據庫可以有多個從數據庫,而一個從數據庫只能有一個主數據庫。

    通過redis的復制功能可以很好的實現數據庫的讀寫分離,提高服務器的負載能力。主數據庫主要進行寫操作,而從數據庫負責讀操作。

  (2)主從復制過程:

    

  過程:

    1:當一個從數據庫啟動時,會向主數據庫發送sync命令,

    2:主數據庫接收到sync命令后會開始在后台保存快照(執行rdb操作),並將保存期間接收到的命令緩存起來

    3:當快照完成后,redis會將快照文件和所有緩存的命令發送給從數據庫。

    4:從數據庫收到后,會載入快照文件並執行收到的緩存的命令。

2、配置redis主從復制  

  (1)准備三台虛擬機(共同存在redis-5.0.7中redis.conf文件)

      

   (2)修改2台從機redis.conf文件中replicaof的IP地址

      

      

   (3)分別連上redis庫

      

   (4)主機寫入,從機同時更新,從機只讀,若想寫入可修改conf文件屬性

   (5)主機信息

      

   (6)從機信息

      

3、哨兵機制 

  Redis的哨兵(sentinel) 系統用於管理多個 Redis 服務器,該系統執行以下三個任務:

    · 監控(Monitoring): 哨兵(sentinel) 會不斷地檢查你的Master和Slave是否運作正常。

    · 提醒(Notification):當被監控的某個 Redis出現問題時, 哨兵(sentinel) 可以通過 API 向管理員或者其他應用程序發送通知。

    · 自動故障遷移(Automatic failover):當一個Master不能正常工作時,哨兵(sentinel) 會開始一次自動故障遷移操作,它會將失效Master的其中一個Slave升級為新的Master, 並讓失效Master的其他Slave改為復制新的Master; 當客戶端試圖連接失效的Master時,集群也會向客戶端返回新Master的地址,使得集群可以使用Master代替失效Master。

  哨兵(sentinel) 是一個分布式系統,你可以在一個架構中運行多個哨兵(sentinel) 進程,這些進程使用流言協議(gossipprotocols)來接收關於Master是否下線的信息,並使用投票協議(agreement protocols)來決定是否執行自動故障遷移,以及選擇哪個Slave作為新的Master.

  每個哨兵(sentinel) 會向其它哨兵(sentinel)、master、slave定時發送消息,以確認對方是否”活”着,如果發現對方在指定時間(可配置)內未回應,則暫時認為對方已掛(所謂的”主觀認為宕機” Subjective Down,簡稱sdown).

  若“哨兵群”中的多數sentinel,都報告某一master沒響應,系統才認為該master"徹底死亡"(即:客觀上的真正down機,Objective Down,簡稱odown),通過一定的vote算法,從剩下的slave節點中,選一台提升為master,然后自動修改相關配置.

  雖然哨兵(sentinel) 釋出為一個單獨的可執行文件 redis-sentinel ,但實際上它只是一個運行在特殊模式下的 Redis 服務器,你可以在啟動一個普通 Redis 服務器時通過給定 --sentinel 選項來啟動哨兵(sentinel).

  哨兵(sentinel) 的一些設計思路和zookeeper非常類似

  單個哨兵(sentinel)

    

4、配置redis哨兵機制

  (1)准備三台虛擬機(共同存在redis-5.0.7中redis.conf文件)

      

   (2)修改隨便一台從機sentinel.conf文件中replicaof的屬性

      

      

        

   (3)啟動哨兵模式

      

  (4)切掉主機,哨兵模式自動選取master

      

  (5)恢復之前的主機,默認變為從機

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM