Redis——主從復(fù)制

主從復(fù)制 :

主從復(fù)制示意圖
主從復(fù)制總結(jié)
  • 主從復(fù)制實現(xiàn):
    1. slaveof
    2. 配置文件:
      slave ip port
  • 復(fù)制方式
    • 全量復(fù)制


      全量復(fù)制
      • 全量復(fù)制開銷:
        bgsave時間
        RDB文件網(wǎng)絡(luò)傳輸時間
        從節(jié)點清空數(shù)據(jù)時間
        從節(jié)點加載RDB的時間
        可能的AOF重寫時間
    • 部分復(fù)制


      部分復(fù)制

      部分復(fù)制的核心有三點:

    • master的復(fù)制偏移量(offset)

    • master的復(fù)制積壓緩沖區(qū) (固定長度FIFO隊列,圖中綠色)

    • 服務(wù)器的runID
      當(dāng)過程4中偏移量之后的數(shù)據(jù)在緩沖區(qū)范圍之內(nèi),會開始部分復(fù)制,若偏移量之后的數(shù)據(jù)已經(jīng)不在緩沖區(qū)之內(nèi),將進行全量復(fù)制。
      最后我們總結(jié)一下部分復(fù)制與全量復(fù)制:
      如果服務(wù)器從沒有復(fù)制過任何主服務(wù)器,或者執(zhí)行過slaveof no one,name服務(wù)器將向主服務(wù)器發(fā)送psync?-1,主動請求全量復(fù)制;
      如果服務(wù)器已經(jīng)復(fù)制過主服務(wù)器,那么將發(fā)送psync runid offset 到主服務(wù)器(runid是上次復(fù)制時master的id,offset是當(dāng)前節(jié)點的偏移量),主服務(wù)器將根據(jù)runid是否一致以及偏移量之后的數(shù)據(jù)是否在復(fù)制積壓緩沖區(qū)內(nèi)決定哪種行為,最后需要注意的是,在全量復(fù)制的過程6以及部分復(fù)制的過程6中,從服務(wù)器會以每秒一次的頻率,與主服務(wù)器之間進行心跳檢測

  • 主從復(fù)制問題 :
  • 讀寫分離(擴展讀性能)
    復(fù)制數(shù)據(jù)延遲;
    臟讀(slave節(jié)點無法刪除過期數(shù)據(jù));
    從節(jié)點故障;
  • 主從配置不一致
    maxmemory不一致:丟失數(shù)據(jù)
  • 規(guī)避全量復(fù)制
    第一次全量復(fù)制不可避免;
    小主節(jié)點(maxmemory不要過大),低峰處理復(fù)制;
    節(jié)點runID不匹配(主節(jié)點重啟、故障轉(zhuǎn)移哨兵或者集群)
    復(fù)制積壓緩沖區(qū)不足(網(wǎng)絡(luò)中斷,部分復(fù)制不可滿足;增大復(fù)制緩沖區(qū)rel_backlog_size)
  • 規(guī)避復(fù)制風(fēng)暴
    • 單主節(jié)點復(fù)制風(fēng)暴
      主節(jié)點重啟,多從節(jié)點復(fù)制(解決方法:更換復(fù)制拓撲)


      圖片.png
    • 單機器復(fù)制風(fēng)暴
      機器宕機后,大量全量復(fù)制


      圖片.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天中午和陳小曦聊天,我問到那你有沒有覺得休息不過來?上一次在文章里也提到自己身體的感覺,累,不僅僅是累。4月17...
    Livenhere閱讀 259評論 0 0
  • 我所經(jīng)歷的一切 是一把逆行的匕首 裂帛一樣的心跳 打開一幀幀回眸 草芥也向陽 苦難成詩 我用腳步留住遠方 踏響光亮...
    筆語新晴閱讀 278評論 0 5
  • Link_xx閱讀 299評論 0 0

友情鏈接更多精彩內(nèi)容