redis基礎簡介(七)- 主從複製(master & slave)
阿新 • • 發佈:2019-02-06
簡介
redis主從複製配置和使用都非常的簡單。通過主從複製可以允許多個 slave 擁有和 master 相同的資料庫副本。
redis主從複製的特點:
- master可以擁有多個slave
- 多個 slave 除了可以連線同一個master之外,還可以連線其他slave,當master宕機之後,可以用該slave再次充當master
- 主從複製不會阻塞master,在同步資料時,master可以繼續處理client請求
- redis的主從複製能夠提高系統的伸縮性
下面是redis主從複製的一般架構設計:
主從複製的過程:
- slave 與 master 建立連線,傳送sync同步命令
- master 會啟動一個後臺程序,將資料庫快照儲存到檔案中,同時 master 主程序會開始收集新的寫命令並快取
- 後臺完成儲存後,將此檔案傳送給 slave
- 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: