redis主從復制 從而 數據備份和讀寫分離


蝸牛Redis系列文章目錄http://www.cnblogs.com/tdws/tag/NoSql/

爬蟲轉載注明地址本文地址—博客園蝸牛 http://www.cnblogs.com/tdws/p/5705782.html

雲服務器過期了,這次測試就放在本地(127.0.0.1)。三個redis客戶端,端口分別為6379,6380,6381。

首先將你的redis復制三份(我使用的是redis3.2.1),如果你下載不到,可以留下郵箱或者給我私信。

首先打開cmd,用cd找到你的redis文件夾,我的操作是

在你的第一個redis客戶端文件夾配置文件中,搜索port,找到如下位置

端口號設置為6379(默認的。后面一個,兩個或者多個客戶端分別修改為你想使用的端口號,我這里使用6380,6381)

這樣一來,6379的rendi客戶端已經啟動。后面的客戶端只需要你修改配置文件中的端口號后,以同樣的方式打開redis。

下面打開你每個redis所對應的客戶端操作控制台,開啟新cmd,切換到你需要的盤符下面,方式如下。

這樣一來 redis客戶端操作控制台已經啟動,我們可以正常操作set get flushdb save等。

當然其他兩個端口端口的redis操作控制台也這樣啟動,不過把你的端口號修改為你所對應的。

下面我將對6379作為master主節點,6380,6381為slave從節點。

那么測試操作過程如下:

首先flushall,確保清空緩存,接下來set三條數據並使用keys *命令來查看當前所有key val

下面,我們來手動讓6380端口的redis來作為6379的從節點,操作如下:

使用slaveof命令來達到目的。當然在這樣的命令下,redis掛掉后,他們的主從關系就不存在了,稍后會講到如何永久確定主從關系。

我們還是先來測試一下數據是否同步過來了。

依然使用keys *命令,我們可以看到結果。主從同步數據成功。那么6381端口同步也是一樣的。

現在我在master 6379添加數據后來查看從節點的內容。

從節點中再次使用keys *命令查看:

可以看到6380已同步master節點的數據。

下面我們在嘗試一項操作:

我試圖在從節點中set值,提示從服務器是只讀的。不過我們可以在從節點中操作save,這也算是一種redis數據備份吧。

既然這樣了,我們的主從復制已經配置結束。實現讀寫分離的原理也正是如此,在多個從服務器中讀取數據,在master中操縱數據。

不過我認為這在普通場景中根本用不到,除非寫量相對少,而讀取量特別的,我們才選擇讀寫分離。

 

還有最后要說設置永久主從關系的方法就是,你在從節點的配置文件中,搜索slaveof關鍵字找到:

做如上配置,每當你重啟redis服務,自動同步所有數據。

普通配置策略情況下,主掛從全掛,當然我們也有辦法來解決這個問題。

下一篇 Redis並發鎖  http://www.cnblogs.com/tdws/p/5712835.html

有任何疑問和建議歡迎交流。

 

 

 如果我的點滴分享對您有點低幫助,歡迎點擊下方紅色關注,我將持續分享,共同進步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM