7.Redis複製的原理與優化

<!doctype html>7.Redis複製的原理與優化html

Redis複製的原理與優化

什麼是主從複製

  1. 單機有什麼問題node

    • 機器故障
    • 容量瓶頸
    • QPS瓶頸
  2. 主從複製的做用redis

    • 數據副本
    • 寬展讀性能
  3. 總結網絡

    • 一個master能夠有多個slave
    • 一個slave只能有一個master
    • 數據流向是單向的,master到slave

複製的配置

命令配置

 
 
 
xxxxxxxxxx
 
 
 
 
* 命令配置複製
* slaveof 命令 在從節點執行
* 取消複製
* slaveof no one 在從節點執行 清除全部的從節點數據
 
 

配置文件 從節點配置

 
 
 
xxxxxxxxxx
 
 
 
 
* slaveof ip prot 
* slave-read-only yes
 
 

比較

方式 命令 配置
優勢 無需重啓 贊成配置
缺點 不便於管理 須要重啓

全量複製和部分複製

全量複製

  • run_id運維

  • master_repl_offset:1865 偏移量 主從偏移量同步更新性能

  • 全量複製開銷優化

    • bgsave時間
    • RDB網絡傳輸信息
    • 從節點清空數據時間
    • 從節點加載RDB時間
    • 可能在AOF重寫時間

部分複製 redis2.8以後

 

故障處理

  • 總故障轉移spa

  • slave宕機code

    • 一主兩從
  • master宕機htm

    • slaveof no one
    • slaveof new master
  • 主從複製故障轉移問題

    • sentinel

開發運維常見問題

  • 讀寫分離:讀分攤到從節點

    • 複製數據延遲

    • 讀到過時數據 - redis 3.2已經解決

      • 刪除過時數據 從節點沒法刪除數據

        • 懶惰策略 讀到過時數據再判斷刪除
        • 定時刪除
    • 從節點故障 優化主節點

  • 主從配置不一致

    • maxmemory不一致:丟失數據
    • 例如數據結果優化參數(hash-max-ziplist-entries):內存不一致
  • 規避全量複製

    • 第一次全量複製

      • 第一次不可避免
      • 小主節點,低峯
    • 節點運行ID不匹配

      • 主節點重啓(運行ID變化) 4.0 psyncto
      • 故障轉移 例如哨兵 或集羣
    • 複製積壓緩衝區不足

      • 網絡中斷,部分複製沒法知足
      • 增大複製緩衝區配置rel_backlog_size 網絡 「加強」
  • 規避複製風暴

    • 單節點複製風暴

      • 問題:主節點重啓,全部的從節點全量複製 風暴 cpu 內存 網絡

      • 解決:更換複製拓撲

        • master - slave - slave-1-a

          • slave-2-b
    • 單機器複製風暴

      • 機器宕機後 大量複製
      • 主節點分散多機器
相關文章
相關標籤/搜索