高可用redis cluster集羣搭建

redis集羣是一個由多個主從節點羣組成的分佈式服務器羣,它具有複製、高可用和分片特 性。Redis集羣不需要
sentinel哨兵也能完成節點移除和故障轉移的功能。需要將每個節點 設置成集羣模式,這種集羣模式沒有中心節
點,可水平擴展,據官方文檔稱可以線性擴展到 1000節點。redis集羣的性能和高可用性均優於之前版本的哨兵模
式,而且集羣的安裝配置,簡單到令人髮指。

至於redis安裝,這裏有詳細的安裝步驟:https://blog.csdn.net/baomw/article/details/88916102,對着一頓猛操作即可。

一個最簡單的集羣部署圖如下,三主六從,真正生產應用的時候,就是九臺機器(有錢人乾的),三個一組,一組裏面一主節點(master)二從(slave),當我們主節點掛掉的時候,會根據相關算法在配置的兩個從節點中,從新選舉出一個主節點,從而保證集羣的可用性,至於具體怎麼配置,看下即可。
在這裏插入圖片描述
在這裏插入圖片描述
如上圖,爲了模擬集羣環境,我這邊vm中創建了三臺虛擬機,然後每臺機器中起一個master和兩個slave。模擬集羣環境,當然生產使用的時候一般都是在不同的物理機上了。
在這裏插入圖片描述
上一篇文章說道,redis啓動基於配置文件,所以如圖,這邊每臺虛擬機上放置三套redis啓動配置,模擬三臺機器,文件名對應啓動端口,6001-6003,7001-7003,8001-8003,。
詳細配置如下;

daemonize: 後臺模式   配置爲 no
port: 端口號   對應端口即可
bind: 綁定的ip   註釋掉
dir: redis數據文件存放位置,即redis的工作空間目錄,配置到對應的db目錄即可
cluster-enabled yes: 開啓集羣模式 
cluster-config-file: 集羣配置文件的位置    改下文件名端口號即可
cluster-nodetimeout: 超時設置   
appendonly yes: 持久化 
protected-mode no: 保護模式  
requirepass redis: 密碼
masterauth: 集羣通信密碼  和登錄密碼一致即可

按照如上配置完成之後,使用啓動命令分別啓動所有節點:

redis-db-7001/bin/redis-server redis-db-7001/etc/redis.conf

啓動完成之後的效果如下:

在這裏插入圖片描述
可以看到,現在所有的節點都已經使用集羣模式(cluster)啓動了,但是是不是說明我們現在的所有節點就已經完成集羣了呢,顯然不是。
現在我們可以使用redis-client來構建我們的集羣,構建方式也比較簡單,命令如下:

redis-cli -a baomw --cluster create --cluster-replicas 2 192.168.179.101:6001 192.168.179.102:7002 192.168.179.103:8003 192.168.179.102:7001 192.168.179.101:6002 192.168.179.103:8002 192.168.179.103:8001 192.168.179.101:6003 192.168.179.102:7003 

隨便找一個節點,進入bin目錄,參數解釋:
-a baomw 即密碼是baomw,你們是多少就設置多少就可以了
–cluster create 創建集羣
–cluster-replicas 2 表示一個master有幾個slave,redis三個一組或兩個一組,一個集羣至少三組,如果我們有六臺機器,很明顯,一個master對應一個slove,那麼這裏寫1,我現在這裏有9臺機器,那麼,算一下很容易算出來,一臺master對應兩個slave,這裏寫2即可
後面這一坨即是我們所有的節點的ip地址+端口,注意這裏寫法有點東西的,爲了保證高可用,我們搭建集羣首先保證我們的master和slave不在一臺機器上,配置2的話,會順序三個分成一組,然後再每一組裏面根據選出一個master和兩個slave。
在這裏插入圖片描述
執行命令後,會彈出這個選項,讓你確定是不是執行這種策略,如上圖,主意三點:
1,m表示改節點是master,s表示slave
2,只有master節點纔會顯示,即我們的槽點值範圍
3,標識出了該slave對應的masterd的id
在這裏插入圖片描述
輸入yes,即可開始構建我們的集羣了當彈出如圖提示的時候表示集羣已經構建好了,然後槽點也都分配好了

下面我們來訪問下這個集羣,當然訪問方式也得用我們的集羣命令來訪問了,我們隨機訪問一臺master即可。
在這裏插入圖片描述

redis-cli -a baomw -c -h 192.168.179.101 -p 6001

命令參數如下:
-a baomw 密碼
-c 表示用集羣方式訪問
後面不說了

如上圖,我set了baomw baomw,可以看到算出來key對應的槽點值爲,13925,然後客戶端重定向到了192.168.179.130:8003這個master上。表示我們的集羣已經可以正常工作了

下面再介紹兩個命令:
在這裏插入圖片描述

cluster info
cluster nodes

如上,可以看到當前接點信息,還有集羣的所有的節點信息。

如上,我們整個redis集羣就搭建好了,至於具體測容災測試你們有興趣的可以自己試試,這裏就不在多說了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章