首頁 > 資料庫 > Redis > Redis講解主從複製和哨兵模式

Redis講解主從複製和哨兵模式

coldplay.xixi
發布: 2021-01-26 09:45:33
轉載
2163 人瀏覽過

Redis講解主從複製和哨兵模式

推薦(免費):redis

文章目錄

  • 主從複製
    • 指令
    • 設定
  • #複製原理
    • 全量複製
    • 增量複製
  • 測試
  • #巢狀主從
    • 哨兵模式
    • 設定哨兵
  • 測試


#主從複製

主從複製指的是把一台Redis伺服器的資料複製到其他Redis伺服器上,前者稱為主節點Master,後者稱為從節點Slave,只能從Master單向複製到Slave,一般Master以寫入操作為主,Slave以讀取操作為主,實現讀寫分離。

作用
  1. 資料冗餘:主從複製實現了資料的熱備份,是持久化之外的一種資料冗餘方式。
  2. 故障復原:當主節點出現問題時,可以由從節點提供服務,實現快速的故障復原;實際上是一種服務的冗餘。
  3. 負載平衡:在主從複製的基礎上,配合讀寫分離,可以由主節點提供寫入服務,由從節點提供讀取服務(即寫Redis資料時應用連接主節點,讀Redis數據時應用連線從節點),分擔伺服器負載;尤其是在寫少讀多的場景下,透過多個從節點分擔讀取負載,可以大幅提高Redis伺服器的並發量。
高可用基石:除了上述作用以外,主從複製還是哨兵和集群能夠實施的基礎,因此說主從複製是Redis高可用的基礎。

指令#指令作用
slaveof host port 將目前伺服器轉變為指定伺服器的從屬伺服器。如果已是slave則停止對舊主伺服器的同步,丟棄舊資料集,轉而開始對新主伺服器進行同步。 SLAVEOF NO ONE將使得這個從屬伺服器關閉複製功能,並從從屬伺服器轉變回主伺服器,原來同步所得的資料集不會被丟棄。
###info### [###section###]######INFO指令以一種易於理解和閱讀的格式,傳回關於Redis伺服器的各種資訊和統計數值。透過給定可選的參數###section###,可以讓指令只傳回某一部分的資訊:############

配置

以單機多服務為例(正常是多機多服務,然我只有一台伺服器)

首先每個redis客戶端都預設是主機,可以透過info replication指令查看。
Redis講解主從複製和哨兵模式

那我們現在要同時開三個客戶端,模擬一主兩從,所以要修改設定:

  1. 修改埠號
  2. #修改pid名字
  3. 修改log名字
  4. 修改rdb名字
  5. 設定主機連線(可不選,用指令列)

先拷貝兩份設定檔作為從機配置,主機可使用預設。
Redis講解主從複製和哨兵模式
以redis80.conf為例依序修改上述五點配置,81只改前四點。
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
然後啟動他們(79、80、81)
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
設定主從:

  1. 80是在設定檔設定(永久式)好的,直接檢視:
    Redis講解主從複製和哨兵模式
  2. 81沒有配置,可以手動命令列設定
    Redis講解主從複製和哨兵模式

#此時查看79(master):
Redis講解主從複製和哨兵模式

##複製原則


全量複製

從機每次連接主機時會全量複製,把主機的全部資料複製到從機。

增量複製

從機連上主機後,對於主機後面更新的數據,會只針對這部分數據同步更新給從機。

測試

    從機預設只讀,會增量複製同步主機的資料:

  1. Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式
  2. 主機宕機狀況:

  3. Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式 3 .從機宕機情況:

    Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式
    Redis講解主從複製和哨兵模式

嵌套主從


如圖79是80的主機,而80又是81的主機,這種嵌套主從關係。
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式

Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式


哨兵模式


上面的80上位和嵌套主從都是我們手動命令列輸入的,其目的就是避免主機宕機後寫入操作的空窗期,這些都是需要人工介入。

哨兵SentinelRedis講解主從複製和哨兵模式會作為一個獨立的進程獨立運行,其原理是哨兵透過發送命令,等待Redis伺服器回應,從而監控運行的多個Redis伺服器。
如果哨兵偵測到主機下線,則會選取一個從機「上位」(自動故障遷移)成為新的主機。如果原主機上線,原主機將變成新主機的從機。其原理是透過發布訂閱模式通知其他伺服器,修改設定文件,從而切換主機。
Redis講解主從複製和哨兵模式
如果哨兵宕機怎麼辦?可以使用多哨兵模式來互相監控。

    圖片摘自https://www.jianshu.com/p/06ab9daf921d,侵刪
  • ##主觀下線
  • (Subjectively Down, 簡稱SDOWN)指的是單一哨兵實例對伺服器所做的下線判斷。
  • 客觀下線
(Objectively Down, 簡稱ODOWN)指的是多個哨兵實例在對同一個伺服器做出主觀下線判斷, 並且透過SENTINEL is-master-down- by-addr 指令互相交流之後, 得出的伺服器下線判斷。

當主機客觀下線後,哨兵會投票出新的主機(

具體演算法略

),進行自動故障遷移(failover),透過發布訂閱通知其他伺服器切換主機。

設定哨兵


Redis講解主從複製和哨兵模式首先在安裝目錄下有一個詳細註解的哨兵設定:

Redis講解主從複製和哨兵模式 新建sentinel.conf來監視6379,其餘預設即可:

Redis講解主從複製和哨兵模式 啟動哨兵:
Redis講解主從複製和哨兵模式

測試

Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
Redis講解主從複製和哨兵模式
多重哨兵模式,設定不同連接埠的設定檔來開啟多個哨兵用戶端,然後照葫蘆畫瓢即可(

偷懶### )###

以上是Redis講解主從複製和哨兵模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板