Redis 複製(Master/Slave)

Redis 複製(Master/Slave)

1.Redis 複製--含義
1. 主從複製,主機數據更新後根據配置和策略,自動同步到備份的master/slave機制。
2. Master以爲主,Slave 以爲主

2.Redis 複製--作用
1. 讀寫分離
2. 容災恢復

3.Redis 複製--操作
    3.1 配置從(庫)不配置主(庫)

    3.2 從庫配置: slaveof 主庫 IP 主庫端口
  • 每次與master斷開後,都需要重新連接,除非你配置進入redis.conf 文件
  • Info replication 查看主機信息
    
    
    3.3 修改配置文件細節操作
  • 拷貝多個redis.conf 文件


  • 開啓daemonize yes (同理,修改6380 和 6381)
       
               
  • pid 文件名 (同理,修改6380 和 6381)
       

  • 指定端口號 (同理,修改6380 和 6381)
       
  • log 文件名字 (同理,修改6380 和 6381)
       
  • Dump.rdb 名字  (同理,修改6380 和 6381)      
       
    
   3.4 常用3招
  • 一主二僕
    • 含義
一臺主機有2臺從機,主機的操作,從機只有的操作
            
  • 思維導圖
    
  • A 主機
           

  • B 主機
           

  • C 主機
           

  • 注意事項
    • 如果master 關機後,從機只能等待主機回來,才能進行寫的操作。
    • 如果當從機 關機後, 從機的角色身份爲master,將不受到主機的管轄。否則從新slaveof 主機ip
            
  • 薪火相傳
    •  含義:
上一個Slave可以是下一個slave的Master,Slave同樣可以接收其他slaves的連接和同步請求,那麼該slave作爲了鏈條中下一個的master,可以有效減輕master的寫壓力
  • 思維導圖
            
  • 注意事項:
  • 如果master 關機後,從機只能等待主機回來,才能進行寫的操作。(即使A 主機掛了, 但是 b 主機還是沒有寫的操作)
  • 如果當從機 關機後, 從機的角色身份爲master,將不受到主機的管轄。否則從新slaveof 主機ip

  • 反客爲主 
    • 含義:
        slaveof no one 使用當前數據庫停止與其他數據庫的同步,轉成主數據庫

  • 思維導圖
                


  • 哨兵模式 (sentinel)
    • 含義
    反客爲主的自動版,能夠後臺監控主機是否故障,如果故障了根據投票數自動將從庫轉換爲主庫

  • 思維導圖

  • 操作
    • 1.調整結構,6793爲主 6380、6381爲從
      主機B: Slaveof  192.168.50.151 6379
           主機C: Slaveof  192.168.50.151 6379

  • 2.自定義的/media/lenovo/軟件盤/redis 目錄下, 新建sentinel.conf 文件(名字絕不能起錯)
         cd /media/lenovo/軟件盤/redis && touch sentinel.conf

  • 3.配置哨兵,填寫內容
    • a. 添加 sentinel.conf 內容,保存退出
sentinel monitor 被監控數據庫名字(自己起名字) 127.0.0.1 6379 1 (上面最後一個數字1,表示主機掛掉後salve投票看讓誰接替成爲主機,得票數多少後成爲主機)
               

  • 4.啓動哨兵  
    cd /usr/local/bin && redis-sentinel /media/lenovo/軟件盤/redis && touch sentinel.conf

  • 5.將master主機掛起
    A 主機: shutdown 

  • 6.投票新選出這2個從機其中一個作爲master
                    

  • 注意事項:
  • 如果 主機A (master) 重新啓動後,哨兵模式,將會從主機A(master) ==> A主機(slave2)


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

4.Redis 複製--缺點
複製延時




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