天天看點

Redis主從複制(自帶讀寫分離)

Redis主從複制特别友善,不需要其他中間件,而且自帶讀寫分離

前提準備

  1. 至少兩台伺服器,或同一個IP的不同端口(我用的是VMware虛拟出來的三台Linux)
  2. 安裝Redis
  3. 不同伺服器務必關防火牆或開放端口号

實作原理

Redis主從複制(自帶讀寫分離)

                                                                          (圖檔源自:螞蟻課堂)

-  從伺服器連接配接主伺服器,發送SYNC指令; 

-  主伺服器接收到SYNC命名後,開始執行BGSAVE指令生成RDB檔案并使用緩沖區記錄此後執行的所有寫指令; 

-  主伺服器BGSAVE執行完後,向所有從伺服器發送快照檔案,并在發送期間繼續記錄被執行的寫指令; 

-  從伺服器收到快照檔案後丢棄所有舊資料,載入收到的快照; 

-  主伺服器快照發送完畢後開始向從伺服器發送緩沖區中的寫指令; 

-  從伺服器完成對快照的載入,開始接收指令請求,并執行來自主伺服器緩沖區的寫指令;

主從複制步驟

叢集圖:

Redis主從複制(自帶讀寫分離)

① 修改每台伺服器redis.conf

### 修改為yes  允許背景啟動
daemonize yes
### 取消密碼注釋,并設定密碼
requirepass 123456
           

② 從伺服器slave1配置主從同步(從配主不配)

--- 修改從redis中的 redis.conf檔案
### 主伺服器IP 端口号
slaveof 192.168.93.138 6379  
### 主redis伺服器密碼
masterauth 123456
           

③ 同理配置salve2,主從同步完畢

--- 修改從redis中的 redis.conf檔案
### 主伺服器IP 端口号
### slave2可以将主伺服器配置成slave1,但根本意義上主伺服器還是master
slaveof 192.168.93.138 6379  或   slaveof 192.168.93.139 6379
### 主redis伺服器密碼
masterauth 123456
           

注意:

  • 在slave2主從同步之前的資料也會同步到slave2中
  • Redis的從伺服器預設為 only read,不需要配置

筆者水準有限,若有錯誤歡迎糾正,歡迎讨論

參考:https://www.cnblogs.com/kevingrace/p/5685332.html(很好的博文,想更深入了解Redis主從原理的可以參照)

           螞蟻課堂

繼續閱讀