標籤:
一、redis主從複製原理
在Slave啟動並串連到Master後,將主動發送SYNC命令。此後Master將啟動後台存檔進程,將資料庫快照集儲存到檔案中,同時收集新的寫命令 (增、刪、改)並緩衝起來,在後台進程執行寫檔案。完畢後,Master將傳送整個資料庫檔案到Slave,以完成一次完全同步。而Slave伺服器在接收到資料庫檔案資料之後將其存檔並載入到記憶體恢複資料庫快照集到slave上。此後,Master繼續將所有已經收集到的修改命令,和新的修改命令依次傳送給Slaves,Slave將在本次執行這些資料修改命令,從而達到最終的資料同步。從master到slave的同步資料的命令和從 client發送的命令使用相同的協議格式。如果Master和Slave之間的連結出現斷連現象,Slave可以自動重連Master,但是在串連成功之後,一次完全同步將被自動執行。如果master同時收到多個slave發來的同步串連命令,只會使用啟動一個進程來寫資料庫鏡像,然後發送給所有slave。
二、redis主從複製的特點 1、同一個Master可同步多個Slaves。2、Slave可接受其它Slaves的串連和同步請求,有效分載Master的同步壓力。因此可將Redis的Replication架構視為圖結構。3、Master Server以非阻塞的方式為Slaves提供服務。在Master-Slave同步期間,用戶端仍可提交查詢或修改請求。4、Slave Server以非阻塞的方式完成資料同步,在首次同步資料時會阻塞不能處理用戶端請求。之後在同步期間,用戶端提交查詢請求,Slave Server返回同步之前的資料。5、主從複製可以用來提高系統的延展性, 可將多個Slave伺服器專門提供唯讀請求,如可用來做sort操作或做簡單的資料冗餘。6、可禁用Master資料持久化操作,資料持久化操作交給Slaves完成,避免在Master中要有獨立的進程來完成此操作。只需要注釋掉master 設定檔中的所有save配置,然後只在slave上配置資料持久化。
三、配置主從複製 樣本:master:10.142.130.81 slave:10.142.130.821、在兩台伺服器分別安裝redis並啟動,連接埠使用6379。2、在10.142.130.82上執行命令:redis-cli
slaveof 10.142.130.81 6379上面的配置是臨時生效的,如果slave重啟,他們之間的複製關係將終止。如果希望長期保證這兩個伺服器之間的Replication關係,需要在slave伺服器配置:編輯redis.conf設定檔將 # slaveof <masterip> <masterport>
改為
slaveof 10.142.130.81 6379
redis主從複製