首頁 > 軟體

sentinel支援的redis高可用叢集設定詳解

2022-04-01 13:03:04

一、首先設定redis的主從同步叢集

1、主庫的組態檔不用修改,從庫的組態檔只需增加一行,說明主庫的IP埠。如果需要驗證的,也要加多一行,認證密碼。

slaveof 192.168.20.26 5268

masterauth hodge01

一主多從的話,就啟用多個從庫。其中,從庫都是一樣的方案。本次有兩個slave。

2、命令檢查

/usr/local/redis/bin/redis-cli -p 5257 -a hodge01 info Replication

二、sentinel高可用

1、概況。sentinel是redis自帶的附件,在新的版本redis安裝都有sentinel。sentinel是稱作哨兵的監控機制,當達到一定數量的sentinel投票支援,redis的master就會切換。本次使用docker容器搭建,主要講述組態檔。

2、組態檔。注意:每次要拋棄上一次叢集都考檢查組態檔,因為sentinel是靠更改組態檔實現功能的。

監聽埠。

第一行最後的那個2,是說明需要兩個sentinel確認客觀下線,需要切換,才能操作。

如果有需要密碼驗證的,要在這裡新增密碼資訊,否則不能通訊。

在組態檔後面幾行是啟動後系統自動新增。

3、啟動。

啟動之後,本實驗就是3臺redis,三臺sentinel,sentinel的組態檔自動填寫了sentinel叢集和redis叢集的資訊。因為網路影響,所以單單憑一臺sentinel之言就隨便切換,所以一般情況需要3臺sentinel以上。

確認5268是master,連線兩個slave。

4、測試。

a、關掉5268redis。

b、檢查4157和5257redis。發現master已經轉移到5257。

c、檢視轉移紀錄檔。

+failover-state-reconf-slaves master mymaster

…………

+failover-end master mymaster

第一行是確認預先的架構複核標準。

第二行認為5268已經客觀下線。

第三行表示準備重寫主從架構的組態檔。

第四行表示開始重寫。

第五行表示故障切換處理5268完畢.。

第六、七行記錄在sentinel中已經認為4157和5268作為slave已經追隨5257master。

第九行sentinel認為5268已經淪落為slave,但是並不線上。緊接著標記主觀下線。

第十行表示5268重啟後符合slave標準,用“-”移除主觀下線記錄。

但是,查了兩次5257,並沒有發現5268的資訊。於是我們檢視redis5258的紀錄檔,看沒有連上master是怎麼回事,反正sentinel那邊已經認為連上。

d、恢復後的redis5268的紀錄檔。(例外處理)

NOAUTH Authentication required.

滿滿的認證不成功,已經很明顯告知,5268恢復之後就是slave了,因為此時的5257已經有了密碼,而5268沒有密碼記錄,自然沒有認證成功連上master5257。

所以在redis5268加上在master面前的認證密碼。

masterauth hodge01

e、重啟驗證。

重啟redis5268

檢查redis master5257,發現5268已經連上。

到此為止,sentinel支援的redis高可用叢集就全部完成,IP自動切換方面下次探索。

以上就是sentinel支援的redis高可用叢集設定詳解的詳細內容,更多關於sentinel redis高可用叢集設定的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com