Redis - 主從複製

發表於2020-06-21

主從複製,就是主機資料更新後根據配置和策略,自動同步到備機的master/slaver

Master以寫為主,Slaver以讀為主

 

一:配從不配主

  1:拷貝多個redis.conf

  

 

   2:開啟daemonize yes

  

 

  3:Pid檔名字

  

 

   4:指定埠

 

   5:Dump.rdb名字

 

  6:appendonly關掉

 

  檔案配置:redis6379.conf、redis6380.conf、redis6381.conf

   

info replication   列印主從複製的相關資訊

slaveof <ip> <port>  成為某個例項的從伺服器

 

二:Redis主從複製的三種方式

一主二僕

 

 

 

一個Master,兩個Slave,Slave只能讀不能寫;當Slave與Master斷開後需要重新slave of連線才可建立之前的主從關係;

Master掛掉後,Master關係依然存在,Master重啟即可恢復。

 

薪火相傳

 

 

 

上一個Slave可以是下一個Slave的Master,Slave同樣可以接收其他slaves的連線和同步請求,那麼該slave作為了鏈條中下一個slave的Master,

如此可以有效減輕Master的寫壓力。如果slave中途變更轉向,會清除之前的資料,重新建立最新的。

 

反客為主

當Master掛掉後,Slave可鍵入命令 slaveof no one使當前redis停止與其他Master redis資料同步,轉成Master redis。

 

三:複製原理

       1:Slave啟動成功連線到master後會傳送一個sync命令;

       2:主機立刻進行存檔操作,給從機傳送RDB檔案

       3:從機收到RDB檔案後進行全盤載入

       4:之後每次主機的寫操作,都會立刻傳送給從機,從機執行相同的命令

四:哨兵模式

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

一組sentinel能同時監控多個Master。

使用步驟:

       1:在Master對應redis.conf同目錄下新建sentinel.conf檔案

       2:配置哨兵,在sentinel.conf檔案中填入內容:

             sentinel monitor 被監控資料庫名字(自己起名字) ip port 1

             說明:上面最後一個數字1,表示主機掛掉後slave投票看讓誰接替成為主機,得票數多少後成為主機。

      3:啟動哨兵模式:

            命令鍵入:redis-sentinel  /myredis/sentinel.conf

 

相關文章