1. 程式人生 > 實用技巧 >Redis叢集分析(2)

Redis叢集分析(2)

1、 主從模式

在(1)中介紹了主從模式主要是一臺主伺服器與多臺從伺服器,從伺服器的資料與主伺服器的資料相同,為主伺服器分擔訪問壓力。

主從模式有兩個特點:第一個是主從的許可權不同,第二個是主從資料相同。這兩個特點中主從資料相同是保證資料的一致性,這點是最重要的,主從的許可權不同也是為了保障資料的一致性。假設主從許可權一致都可以進行讀寫,這時一個客戶端訪問伺服器A,將資料a1的值該為了1,同時又有一個客戶端訪問伺服器B,將資料a1的值改為了2。這時就會出現在同一個叢集裡資料a1的值不一致的情況。

解決資料一致性的方式有很多,主從模式的解決方式是禁止其他伺服器的寫許可權,只允許一臺主伺服器進行寫操作,然後主伺服器再將寫的資料同步給從伺服器。

2、 redis主從模式的實現方式

想要實現主從模式很簡單,只需要實現資料同步便可。資料同步分為兩個部分:存量資料同步和增量資料同步。

存量資料

存量資料即當前資料庫中儲存的資料,在介紹其同步方式的時候需要先介紹一下持久化。

持久化

redis是一個記憶體資料庫,但是將資料儲存在記憶體中有一個問題:當程式停止後,記憶體中的資料便沒有了。這樣會導致你重啟一下資料庫,結果資料丟了。這樣肯定不行,於是需要持久化,即在資料庫關閉前將資料寫到磁碟上,資料庫啟動時把資料從磁碟上載入到記憶體。

持久化即將記憶體中的資料寫到磁碟中,這時再來看存量資料的同步就很簡單了只需要將持久化產生的檔案傳到從伺服器,讓從伺服器從中載入資料便可。

增量資料

增量資料即當前時間過後新添到資料庫的資料。這一部分資料的同步很簡單,這些資料都是通過寫操作新增到資料庫中的,所以只需要在發生了寫操作的時候,同時將這個操作傳送給從資料庫,並讓從資料庫執行該命令便可。

redis資料同步示意圖如下:
在這裡插入圖片描述