天天看點

【❤️萬字長文總結❤️】一篇學會Redis高可用✔叢集✔搭建詳細教程

大家好,我是lex 喜歡欺負超人那個lex 擅長領域:python開發、網絡安全滲透、windows域控exchange架構 今日重點:今天總結一下redis叢集高可用的搭建流程
【❤️萬字長文總結❤️】一篇學會Redis高可用✔叢集✔搭建詳細教程

http://distfiles.macports.org/redis/redis-5.0.7.tar.gz

【❤️萬字長文總結❤️】一篇學會Redis高可用✔叢集✔搭建詳細教程

redis高可用叢集,一般選三台伺服器:這樣,我們在一台主節點挂了之後,另外兩台可以選舉其中一台擔任主節點master的角色。

①slave節點配置從master節點同步資料

②哨兵sentinel故障轉移機制:每個redis節點搭建一個監控哨兵,當redis的master節點挂掉之後:三個哨兵選舉一個slave節點 成為master節點

由于現場沒有三台伺服器,我們就在一台伺服器上,使用3個端口,來給他搭一個"僞叢集":

何為"僞叢集"呢?

"僞叢集" 架構與真正叢集完全一樣,故障轉移、高可用都可以。

隻是搭建在一台伺服器上,使用3個端口對外提供服務。

生産環境下,叢集環境還是需要使用3台不同的伺服器,進而保證高可用。這裡隻是節約資源、友善搭建。

完整配置及步驟如下:

注意,從節點與主節點配置的差別主要在兩個地方

①配置主節點:replicaof 192.168.154.145 6379 

②配置主節點的登入密碼masterauth 123456

為了友善管理,我們把哨兵工作目錄分别建在對應的redis工作目錄下

注意:

①配置master的位址及命名(mymaster為叢集名稱):sentinel monitor mymaster 192.168.154.145 6379 2

②配置連接配接redis主節點的密碼 sentinel auth-pass mymaster 123456

③日志目錄一定要建立,因為出問題,友善查找原因。 logfile "/usr/local/redis-6379/sentinel/redis-sentinel.log"

①從節點的配置,除了工作目錄不同及端口,其餘與主節點完全一緻

到此全部配置完成。

測試目标:master主節點 寫入/修改/删除資料,slave從節點會自動同步master的資料操作記錄。

① redis-cli連結master主節點,寫入age和name 兩個資料

② 登入slave從節點檢視

① 連結哨兵:檢視master節點和slave節點的配置設定情況

② 連結指令:redis-cli -a 123456 -p 26379 ,同樣使用redis-cli,隻是連結到sentinel的端口即可

檢視master主節點位址:6379端口服務

③ 檢視slave節點位址:兩個slave節點分别是7001和7002服務,可以看到兩個slave節點指向的master節點為6379

測試目的:master主節點挂掉之後,我們的sentinel叢集可以通過選舉機制,重新在slave節點中選舉一個作為新的master節點。

① 關閉主節點6379

② 檢視此時的master節點

連結到哨兵,檢視主節點:此時,經過三個哨兵的選舉,主節點變為 7002

③此時,再檢視slave節點的情況

發現slave節點變為:6379和7001兩個,而且6379的狀态為 "s_down,slave,disconnected",因為我們關閉了6379

④ 是以,故障轉移就成功了。

① redis叢集開啟之後,slave從節點的權限 預設是隻讀的;當然我們也可以開啟slave節點的寫入權限。

是以,寫資料:連結master主節點;讀資料:連結slave從節點。

如下圖:slave從節點,沒有寫入權限

【❤️萬字長文總結❤️】一篇學會Redis高可用✔叢集✔搭建詳細教程