天天看點

Redis之主從複制2主從複制哨兵模式

上篇文章給大家介紹了Redis的主從複制,但是并沒有介紹完整,本文繼續主從複制的介紹

主從複制

上篇文章搭建的主從結構圖

Redis之主從複制2主從複制哨兵模式

本文我們換種結構

Redis之主從複制2主從複制哨兵模式

具體實作

實作方式也很簡單,我們隻需要在6381上執行如下指令即可

127.0.0.1:6381> slaveof 127.0.0.1 6380
OK      

檢視6379節點資訊

Redis之主從複制2主從複制哨兵模式

在6380上檢視

Redis之主從複制2主從複制哨兵模式

在6381上檢視

Redis之主從複制2主從複制哨兵模式

如此6380是一個從機,而6380還有一個slave是6381.至此實作了我們上面的結構圖

測試

Redis之主從複制2主從複制哨兵模式
Redis之主從複制2主從複制哨兵模式

複制資料沒有問題

哨兵模式

結合上篇文章我們給大家介紹了兩種主從複制的模式,但是我們發現不論是哪種模式,一旦master當機了,那麼整合服務就不可以使用了,此時我們希望系統能在還運作的slave中從新選舉新的節點作為mater這樣我們就不用重新開機服務了。能夠顯著的提高我們系統的穩定性,這裡就需要用到我們将要介紹的哨兵模式。

主從複制環境

我們還是一主兩從,按照上篇文章的結構來實作。

Redis之主從複制2主從複制哨兵模式

哨兵模式配置

修改和redis.conf同級目錄下的sentinel.conf檔案

Redis之主從複制2主從複制哨兵模式
Redis之主從複制2主從複制哨兵模式
sentinel monitor mymaster 127.0.0.1 6379 1      

mymaster 是要監控的主機名 可以随意的取

最後的1 表示的是哨兵投票通過的最低票數,我們開啟一個哨兵程序的話投票就給1。

啟動哨兵模式

先關閉主從服務,然後開啟哨兵模式

Redis之主從複制2主從複制哨兵模式
src/redis-sentinel sentinel.conf       

再分别啟動主從伺服器

[root@hadoop-node01 redis-5.0.3]# src/redis-server redis6379.conf 
[root@hadoop-node01 redis-5.0.3]# src/redis-cli -p 6379
[root@hadoop-node01 redis-5.0.3]# src/redis-server redis6380.conf 
[root@hadoop-node01 redis-5.0.3]# src/redis-cli -p 6380
127.0.0.1:6380> slaveof 127.0.0.1 6379
[root@hadoop-node01 redis-5.0.3]# src/redis-server redis6381.conf 
[root@hadoop-node01 redis-5.0.3]# src/redis-cli -p 6381
127.0.0.1:6381> slaveof 127.0.0.1 6379      

關閉6379master測試

檢視6379狀态

Redis之主從複制2主從複制哨兵模式

關閉6379等待一會檢視哨兵程序界面

Redis之主從複制2主從複制哨兵模式

當看到如上圖的資訊後,我們再檢視6380的時候,發現該節點已經變成了master了。

Redis之主從複制2主從複制哨兵模式

再啟動6379我們發現該執行個體依然是slave并不會改變

Redis之主從複制2主從複制哨兵模式

注意在主從複制中所有的寫入操作都是在master執行個體上進行的,然後再将資訊同步到slave上,這就存在一定的資訊延遲,在系統非常繁忙的時候延遲會更加的嚴重,增加slave也會存在這個問題,是以在實際開發中我們需要通過叢集(cluster)來進一步提升redis的性能,下篇文章将給大家介紹redis的叢集操作。

~本文介紹到此

繼續閱讀