1、哨兵模式(sentinel)是什麼?
哨兵是一個獨立的程序,其原理是:哨兵通過向redis伺服器發送指令,等待redis伺服器響應,進而監控多個運作中的redis執行個體。
- 通過發送指令,讓redis伺服器傳回監控其運作狀态,包括主伺服器和從伺服器。
-
當哨兵監測到master(主機)當機,會自動将slave(從機)切換成主機,然後通過釋出訂閱模式通知其他從機,讓從機修改配置檔案,讓它們切換主機。
但是單哨兵模式仍然是存在問題的。因為有可能因為網絡原因,導緻一個哨兵監聽伺服器的時候,誤以為它挂了。
是以,存在多哨兵模式 。
每個哨兵都會定時地向 其他哨兵、Master(主機)、Slave(從機) 發送消息,以確定對方還活着。
2、簡單了解之後開始配置哨兵模式(sentinel)。
檢視安裝目錄,發現目錄下有一個sentinel.conf配置檔案,通過檔案名可知,這個就是哨兵模式的配置檔案。
那麼知道配置檔案了,如何啟動呢?
我們知道啟動redis服務是使用
redis-server redis.conf
指令啟動,我就去找到這個啟動服務指令所在的檔案夾,發現有一個
redis-sentinel
通過名字就可以知道,這個就是啟動哨兵模式的指令。
3、配置哨兵模式的配置檔案。
此時知道了配置檔案和啟動指令,但是現在還不能運作,需要修改配置檔案,來滿足我們的需求。
使用
vi sentinel.conf
編輯配置檔案。
建議使用vim來編輯配置檔案。
vim和vi一樣的操作,但是vim會把注釋的内容特殊顔色辨別,未注釋的采用白色辨別。
如果使用vim提示未找到此指令。
執行這條指令,來安裝vim編輯器
yum -y install vim*
vim sentinel.conf
根據提示自行修改對應的内容。
# 127.0.0.1表示redis主節點的ip位址
# 6379表示主節點的端口号
# 2 表示有多少個哨兵選取redis從節點後,該從節點可以當選為主節點。
配置檔案隻需要修改這一個即可。
4、測試哨兵模式。
通過檢視配置,确認都已經綁定主節點。
info replication
4、1開啟哨兵模式
哨兵模式預設15s重新整理一次。
通過指令開啟哨兵模式
redis-sentinel sentinel.conf
哨兵模式預設是前台開啟,出現如下界面表示開啟成功。
通過加載出來的指令發現已經監聽到了所有的節點。
4、2手動讓主節點挂掉
4、3發現主機當機後會自動選舉新的主節點。
5、總結:
優點:
- 哨兵叢集,基于主從複制模式,所有的主從配置優點,它都有
- 主從可以切換,故障可以轉移,高可用性的系統
- 哨兵模式就是主從模式的更新,手動到自動,更加健壯
缺點:
- Redis不好線上擴容的,叢集容量一旦到達上限,線上擴容就十分麻煩
- 哨兵模式的配置繁瑣
- 持久化檔案始終在一個伺服器上。
那麼有個疑問了,有沒有能代替哨兵模式的存在嗎?
答案肯定是有的,去中心化叢集