Redis主從同步—筆記

主從同步可以防止主機壞掉導致網站不能正常運作,這種方法即把從機設置爲主機即可。 Redis支持主從同步,而且配置很簡單。Redis主從同步的優點如下:

  • Master可以有多個Slave
  • 多個Slave連接到相同Master,Slave還可以連接其他Slave形成圖形結構
  • 不會阻塞Master。 當一個或者多個Slave與Master進行初次同步數據時,Master可以繼續處理客戶端的請求。相反,Slave在初次同步數據時會阻塞從而不能處理客戶端的請求
  • 主從同步用來提高系統的伸縮性,比如多個Slave專門用於客戶端的讀請求
  • 在Master服務器上禁止數據持久化(註釋配置文件中所有save配置選項), 只在Slave服務器上進行數據持久化。

1.  同步原理

Redis主從同步設置很簡單,設置好Slave服務器後,Slave自動和Master建立連接,發送sync命令。

無論是第一次同步建立的連接還是連接斷開後重新建立的連接,Master都啓動一個後臺進程,將內存數據以快照方式寫入文件中,同時Master主進程開始收集新的寫命令並且緩存起來。Master後臺進程完成內存快照操作後,把數據文件發給Slave,後續Master收到的寫命令都通過開始建立的連接發送給Slave。當Master與Slave斷開連接,Slave自動重新建立連接。如果Master同時收到多個Slave發來的同步請求,其只啓動一個進程寫數據庫鏡像,然後發送給所有Slave。

Redis主從同步過程分兩個階段,第一階段如下:

Slave服務器主動連接到Master服務器

Slave服務器發送sync命令到Master服務器請求同步

Master服務器備份數據庫到rdb文件

Master服務器把rdb文件傳輸給Slave服務器

Slave服務器清空數據庫數據,把rdb文件數據導入數據庫中.

完成第一階段,接下來Master服務器把用戶所有更改數據的操作,通過命令的形式轉發給所有Slave服務器,Slave服務器只需執行Master服務器發送過來的命令就可以達到同步的效果。

相對於MySQL來說, Redis主從複製配置很簡單,只需在Slave服務器配置文件中加入以下配置項

slaveof 192.168.1.1 6379     # 指定Master的IP和端口


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