上篇文章給大家介紹了Redis的主從複制,但是并沒有介紹完整,本文繼續主從複制的介紹
主從複制
上篇文章搭建的主從結構圖
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yN5gzM3cDM3ITZiZTYygTO4ITY0EGNmdjZhJWOzYDO18CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
本文我們換種結構
具體實作
實作方式也很簡單,我們隻需要在6381上執行如下指令即可
127.0.0.1:6381> slaveof 127.0.0.1 6380
OK
檢視6379節點資訊
在6380上檢視
在6381上檢視
如此6380是一個從機,而6380還有一個slave是6381.至此實作了我們上面的結構圖
測試
複制資料沒有問題
哨兵模式
結合上篇文章我們給大家介紹了兩種主從複制的模式,但是我們發現不論是哪種模式,一旦master當機了,那麼整合服務就不可以使用了,此時我們希望系統能在還運作的slave中從新選舉新的節點作為mater這樣我們就不用重新開機服務了。能夠顯著的提高我們系統的穩定性,這裡就需要用到我們将要介紹的哨兵模式。
主從複制環境
我們還是一主兩從,按照上篇文章的結構來實作。
哨兵模式配置
修改和redis.conf同級目錄下的sentinel.conf檔案
sentinel monitor mymaster 127.0.0.1 6379 1
mymaster 是要監控的主機名 可以随意的取
最後的1 表示的是哨兵投票通過的最低票數,我們開啟一個哨兵程序的話投票就給1。
啟動哨兵模式
先關閉主從服務,然後開啟哨兵模式
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狀态
關閉6379等待一會檢視哨兵程序界面
當看到如上圖的資訊後,我們再檢視6380的時候,發現該節點已經變成了master了。
再啟動6379我們發現該執行個體依然是slave并不會改變
注意在主從複制中所有的寫入操作都是在master執行個體上進行的,然後再将資訊同步到slave上,這就存在一定的資訊延遲,在系統非常繁忙的時候延遲會更加的嚴重,增加slave也會存在這個問題,是以在實際開發中我們需要通過叢集(cluster)來進一步提升redis的性能,下篇文章将給大家介紹redis的叢集操作。
~本文介紹到此