天天看點

4. Redis-主從複制+哨兵

4.1 主從複制

  1. master可以擁有多個 slave
  2. 多個 slave 可以連接配接同一個 master 外,還可以連接配接到其他的 slave
  3. 主從複制不會阻塞 master 在同步資料時,master可以繼續處理client請求
  4. 提供系統的伸縮性

4.2 主從複制過程

  1. slave 與 master 建立連接配接,發送 sync 同步指令。
  2. master 會開啟一個背景程序,将資料庫快照儲存到檔案中,同僚 master 主程序會開始收集新的寫指令并緩存
  3. 背景完成儲存後,就将檔案發送給 slave
  4. slave 将此檔案儲存到本地上

4.3 主從複制配置

主從複制方案

角色 ip 端口
master 192.168.136.175 6379
slave 192.168.136.176 6379
slave 192.168.136.178 6379

​1. 安裝redis​

​2. 配置 redis.conf 檔案,master 不要修改配置,隻需要修改 slave 的。slaveof 192.168.136.175 6379​

4. Redis-主從複制+哨兵

​3. 重新開機三台伺服器,在 master 進入redis-cli,輸入 info 指令,看到以下資訊,證明配置成功。​

4. Redis-主從複制+哨兵
4. Redis-主從複制+哨兵

4.4 哨兵

有了主從複制的實作以後,我們如果想對主從伺服器進行監控,那麼在 redis2.6 之後提供了,一個哨兵的機制,在2.6版本中為哨兵1.0版本。在2.8之後哨兵功能,穩定起來。

哨兵的含義就是監控 redis 的運作情況,其主要功能有兩點:

  1. 監控主資料庫和從資料庫是否正常運作。
  2. 主資料庫出現故障時,可以自動将從資料庫轉為主資料庫,實作自動切換。

4.4.1 哨兵實作步驟:

在任意一台從伺服器(slave)啟動 sentinel.conf (其實應該在第四台機器上啟動)

​1. 複制 sentinel.conf 檔案到 /opt/redis/etc 中。sentinel.conf 檔案在redis的源碼包下​

4. Redis-主從複制+哨兵

​2. 修改 sentinel.conf 檔案​

​sentinel monitor mymaster 192.168.136.175 6379 1 ​

4. Redis-主從複制+哨兵

​sentinel down-after-milliseconds mymaster 10000​

4. Redis-主從複制+哨兵

​sentinel parallel-syncs mymaster 2​

4. Redis-主從複制+哨兵

​sentinel failover-timeout mymaster 30000​

4. Redis-主從複制+哨兵

​3. 啟動三台 redis 伺服器​

​4. 啟動哨兵 ./redis-server /opt/redis/etc/sentinel.conf --sentinel &​

4. Redis-主從複制+哨兵

​配置完成!!!​

檢視哨兵監控的資訊,在任意一台機器都可以檢視。 ./redis-cli -h 192.168.136.176 -p 26379 info Sentinel

4. Redis-主從複制+哨兵

關閉 主節點伺服器 (192.168.136.175),配置了哨兵的伺服器上自動列印出提示。

4. Redis-主從複制+哨兵

重新開啟 175,但是節點不會把主節點切回175上。

4. Redis-主從複制+哨兵