redis 主從複製(哨兵模式)

redis 主從複製

主機數據更新後根據配置和策略, 自動同步到備機的master/slaver機制,Master以寫爲主,Slave以讀爲主。

作用:

  • 讀寫分離,性能擴展
  • 容災快速恢復

在這裏插入圖片描述

主從複製

  1. 新建redis6379.conf,填寫以下內容

在這裏插入圖片描述

  1. 新建redis6380.conf,填寫以下內容
    在這裏插入圖片描述

  2. 新建redis6381.conf,填寫以下內容
    在這裏插入圖片描述

:%s/舊字符/替換的新字符

slave-priority 10
設置從機的優先級,值越小,優先級越高,用於選舉主機時使用。默認100

  1. 啓動三臺redis服務器
    在這裏插入圖片描述

  2. 查看系統進程,看看三臺服務器是否啓動。

在這裏插入圖片描述

  1. 查看三臺主機運行情況
    info replication 打印主從複製的相關信息。

在這裏插入圖片描述

配從不配主
在從機上 6380和6381上執行: slaveof 127.0.0.1 6379
就可以認6379爲主機。

在這裏插入圖片描述

在主機上寫,在從機上可以讀取數據,在從機上寫數據報錯。
在這裏插入圖片描述

  • 主機掛掉,重啓就行,一切如初。
  • 主機數據沒有保存而掛掉,再重新啓動主機時,從機數據也會沒有,因爲從機數據來自主機。
  • 從機重啓需重設:slaveof 127.0.0.1 6379
  • 可以將配置增加到文件中。永久生效。

主從複製常用的三種模式

  1. 一主二僕
  2. 薪火相傳
  3. 反客爲主

一主二僕
切入點問題?slave1、slave2是從頭開始複製還是從切入點開始複製?比如從k4進來,那之前的k1,k2,k3是否也可以複製?是
從機是否可以寫?set可否?否
主機shutdown後情況如何?還是大哥
從機是上位還是原地待命? 原地待命
主機又回來了後,主機新增記錄,從機還能否順利複製? 能
其中一臺從機down後情況如何?依照原有它能跟上大部隊嗎? 有,需要重新slaveof 拜大哥。
在這裏插入圖片描述

  • 複製原理

    每次從機聯通後,都會給主機發送sync(同步)指令
    主機立刻進行存盤操作,發送RDB文件給從機
    從機收到RDB文件後覆蓋自己的RDB文件,進行全盤加載,之後每次主機的寫操作,都會立刻發送給從機,從機執行相同的命令。

薪火相傳

上一個Slave可以是下一個slave的Master,Slave同樣可以接收其他 slaves的連接和同步請求,那麼該slave作爲了鏈條中下一個的master, 可以有效減輕master的寫壓力,去中心化降低風險。

用 slaveof <ip> <port>
中途變更轉向:會清除之前的數據,重新建立拷貝最新的,風險是一旦某個slave宕機,後面的slave都沒法備份
主機掛了,從機還是從機,無法寫數據了。
在這裏插入圖片描述

在這裏插入圖片描述

反客爲主

當一個master宕機後,後面的slave可以立刻升爲master,其後面的slave不用做任何修改。用 slaveof no one指令 將從機變爲主機。

在這裏插入圖片描述
複製原理

  • Slave啓動成功連接到master後會發送一個sync命令
  • Master接到命令啓動後臺的存盤進程,同時收集所有接收到的用於修改數據集命令, 在後臺進程執行完畢之後,master將傳送整個數據文件到slave,以完成一次完全同步
  • 全量複製:而slave服務在接收到數據庫文件數據後,將其存盤並加載到內存中。
  • 增量複製:Master繼續將新的所有收集到的修改命令依次傳給slave,完成同步
  • 但是隻要是重新連接master,一次完全同步(全量複製)將被自動執行

哨兵模式(sentinel)

反客爲主的自動版,能夠後臺監控主機是否故障,如果故障了根據投票數自動將從庫轉換爲主庫。

在這裏插入圖片描述
步驟:

  1. 自定義的/myredis目錄下新建sentinel.conf文件,名字絕不能錯

  2. 配置哨兵,填寫內容

     sentinel monitor mymaster 127.0.0.1 6379 1
     其中mymaster爲監控對象起的服務器名稱, 1 爲至少有多少個哨兵同意遷移的數量。
    
  3. 啓動哨兵

/usr/local/bin

執行redis-sentinel /myredis/sentinel.conf

在這裏插入圖片描述

  1. 當主機掛掉,從機選舉中產生新的主機
  2. (大概10秒左右可以看到哨兵窗口日誌,切換了新的主機)哪個從機會被選舉爲主機呢?根據優先級別:slave-priority 。原主機重啓後會變爲從機。
    在這裏插入圖片描述

在這裏插入圖片描述
原因可以看,先的主機配置文件
在這裏插入圖片描述
這裏會指定主機。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章