Redis的主從複製(Master/Slave)

一、是什麼

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

二、能幹啥

讀寫分離 容災備份

三、怎麼配

  1. 配從(庫)不配主(庫)
  2. 從庫配置:slaveof 主庫IP 主庫端口
    每次與master斷開後,都需要重新連接,除非你配置進redis.conf文件
    info replication
  3. 修改配置文件細節操作
    拷貝多個redis.conf文件
    開啓daemonize yes
    Pid文件名字
    指定端口
    log文件名字
    Dump.rdb名字

四、 一主二從模式

clipboard.png

slaveof 127.0.0.1 6379 // 通過此命令,使6380,6381服務作爲6379的從機

五、 薪火相傳模式

slaveof 127.0.0.1 6379 // 通過此命令,使6380作爲6379的從機
slaveof 127.0.0.1 6380 // 通過此命令,使6381作爲6380的從機

六、 反客爲主模式

基於一主二從模式,主機掛了,兩個從機中選一個作爲新主機

slaveof no one // 選爲主機

七、複製原理

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

八、哨兵模式

  • 是什麼
    反客爲主的自動版,能夠後臺監控主機是否故障,如果故障了根據投票數自動將從庫轉換爲主庫
  • 怎麼配
    基於一主二從,6379帶着6380,6381
    在redis配置文件目錄新建sentinel.conf 文件
    sentinel monitor 被監控數據庫名字(自己起名字)127.0.0.1 6379 1
    最後一個1,表示主機掛了後,slave投票看誰接替成爲主機,得票數多少後成爲主機
    啓動哨兵,redis-sentinel /etc/redis/sentinel.conf
    一組sentinel能同時監控多個Master
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章