1. 程式人生 > >redis基礎簡介(七)- 主從複製(master & slave)

redis基礎簡介(七)- 主從複製(master & slave)

簡介

redis主從複製配置和使用都非常的簡單。通過主從複製可以允許多個 slave 擁有和 master 相同的資料庫副本。

redis主從複製的特點:

  1. master可以擁有多個slave
  2. 多個 slave 除了可以連線同一個master之外,還可以連線其他slave,當master宕機之後,可以用該slave再次充當master
  3. 主從複製不會阻塞master,在同步資料時,master可以繼續處理client請求
  4. redis的主從複製能夠提高系統的伸縮性

下面是redis主從複製的一般架構設計:


主從複製的過程:

  1. slave 與 master 建立連線,傳送sync同步命令
  2. master 會啟動一個後臺程序,將資料庫快照儲存到檔案中,同時 master 主程序會開始收集新的寫命令並快取
  3. 後臺完成儲存後,將此檔案傳送給 slave
  4. slave 將此檔案儲存到硬碟上

主從複製的配置

master伺服器的配置,需要指定哪些外部主機能夠連線到master主伺服器,修改master的配置檔案:

bind 0.0.0.0 #允許所有外部主機訪問

slave伺服器的配置,只需在 slave 的配置檔案中加入以下配置:

slaveof 192.168.1.1 6379 #指定要同步的master的主機和埠
masterauth xxxxxx #如果主機加了密碼,則指定master服務主機的密碼,注意由於redis伺服器效率非常高,理論上1s之內能夠嘗試15萬次的密碼嘗試,為了防止外部暴力破解,需要設定高強度的密碼

驗證是否設定成功

我們在主資料庫上設定一對鍵值對:

redis 127.0.0.1:6379> set name zhangsan
OK
redis 127.0.0.1:6379> 

在從伺服器上獲取這個鍵:

redis 127.0.0.1:6379> get name
"zhangsan"
redis 127.0.0.1:6379>

那麼如果事先我們對redis主從叢集的情況不甚瞭解,我們是如何區分哪個是主,哪個是從的呢?
彆著急,我們只需要使用 info 命令就可以得到主從的資訊,比如我們在從庫上執行info: