redis主從複製配置和使用都非常簡單。通過主從複製可以允許多個slave server擁有和master server相同的資料庫副本。下面是關於redis主從複製的一些特點
1.master可以有多個slave
2.除了多個slave連到相同的master外,slave也可以串連其他slave形成圖狀結構
3.主從複製不會阻塞master。也就是說當一個或多個slave與master進行初次同步資料時,master可以繼續處理client發來的請求。相反slave在初次同步資料時則會阻塞不能處理client的請求。
4.主從複製可以用來提高系統的延展性,我們可以用多個slave 專門用於client的讀請求,比如sort操作可以使用slave來處理。也可以用來做簡單的資料冗餘
5.可以在master禁用資料持久化,只需要注釋掉master 設定檔中的所有save配置,然後只在slave上配置資料持久化。
下面介紹下主從複製的過程
當設定好slave伺服器後,slave會建立和master的串連,然後發送sync命令。無論是第一次同步建立的串連還是串連斷開後的重新連 接,master都會啟動一個後台進程,將資料庫快照集儲存到檔案中,同時master主進程會開始收集新的寫命令並緩衝起來。後台進程完成寫檔案 後,master就傳送檔案給slave,slave將檔案儲存到磁碟上,然後載入到記憶體恢複資料庫快照集到slave上。接著master就會把緩衝的命 令轉寄給slave。而且後續master收到的寫命令都會通過開始建立的串連發送給slave。從master到slave的同步資料的命令和從 client發送的命令使用相同的協議格式。當master和slave的串連斷開時slave可以自動重建立立串連。如果master同時收到多個 slave發來的同步串連命令,只會使用啟動一個進程來寫資料庫鏡像,然後發送給所有slave。
配置slave伺服器很簡單,只需要在設定檔中加入如下配置
slaveof 192.168.1.1 6379 #指定master的ip和連接埠