天天看點

Redis配置哨兵模式(sentinel)

1、哨兵模式(sentinel)是什麼?

哨兵是一個獨立的程序,其原理是:哨兵通過向redis伺服器發送指令,等待redis伺服器響應,進而監控多個運作中的redis執行個體。

  1. 通過發送指令,讓redis伺服器傳回監控其運作狀态,包括主伺服器和從伺服器。
  2. 當哨兵監測到master(主機)當機,會自動将slave(從機)切換成主機,然後通過釋出訂閱模式通知其他從機,讓從機修改配置檔案,讓它們切換主機。

    但是單哨兵模式仍然是存在問題的。因為有可能因為網絡原因,導緻一個哨兵監聽伺服器的時候,誤以為它挂了。

    是以,存在多哨兵模式 。

    每個哨兵都會定時地向 其他哨兵、Master(主機)、Slave(從機) 發送消息,以確定對方還活着。

    Redis配置哨兵模式(sentinel)

2、簡單了解之後開始配置哨兵模式(sentinel)。

檢視安裝目錄,發現目錄下有一個sentinel.conf配置檔案,通過檔案名可知,這個就是哨兵模式的配置檔案。

Redis配置哨兵模式(sentinel)

那麼知道配置檔案了,如何啟動呢?

我們知道啟動redis服務是使用

redis-server redis.conf

指令啟動,我就去找到這個啟動服務指令所在的檔案夾,發現有一個

redis-sentinel

通過名字就可以知道,這個就是啟動哨兵模式的指令。

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從節點後,該從節點可以當選為主節點。
           
Redis配置哨兵模式(sentinel)

配置檔案隻需要修改這一個即可。

4、測試哨兵模式。

通過檢視配置,确認都已經綁定主節點。

info replication
           
Redis配置哨兵模式(sentinel)

4、1開啟哨兵模式

哨兵模式預設15s重新整理一次。

通過指令開啟哨兵模式

redis-sentinel sentinel.conf 
           

哨兵模式預設是前台開啟,出現如下界面表示開啟成功。

Redis配置哨兵模式(sentinel)

通過加載出來的指令發現已經監聽到了所有的節點。

Redis配置哨兵模式(sentinel)

4、2手動讓主節點挂掉

Redis配置哨兵模式(sentinel)

4、3發現主機當機後會自動選舉新的主節點。

Redis配置哨兵模式(sentinel)

5、總結:

優點:

  1. 哨兵叢集,基于主從複制模式,所有的主從配置優點,它都有
  2. 主從可以切換,故障可以轉移,高可用性的系統
  3. 哨兵模式就是主從模式的更新,手動到自動,更加健壯

缺點:

  1. Redis不好線上擴容的,叢集容量一旦到達上限,線上擴容就十分麻煩
  2. 哨兵模式的配置繁瑣
  3. 持久化檔案始終在一個伺服器上。

那麼有個疑問了,有沒有能代替哨兵模式的存在嗎?

答案肯定是有的,去中心化叢集

繼續閱讀