redis搭建高可用cluster集羣

1 .在redis目錄下新建文件夾

mkdir cluster

這裏寫圖片描述
2 .在cluster目錄下創建機器節點目錄,每個服務在不同的端口號運行的
我的配置了6個節點,分別執行端口號爲7001~7006

這裏寫圖片描述

3 .將配置文件redis.conf複製到各目錄下

cp redis.conf ../cluster/700x

4 .修改配置文件

如果是單機操作,可以不註釋這行。如果是多個機器節點,需要改爲其他節點機器可訪問的ip, 否則創建集羣時無法訪問對應的端口,無法創建集羣
bind 機器ip

port 7001 #修改端口號 7001-7006

daemonize yes #將no改爲yes,這是redis後臺運行

pidfile /var/run/redis_7006.pid #pidfile文件對應7001-7006

將以下的註釋去掉,以下的配置信息與之前的離得很遠,差不多在配置文件61%的位置
cluster-enabled yes #允許哨兵機制
cluster-config-file nodes-7001.conf #集羣的配置 配置文件首次啓動自動生成
cluster-node-timeout 5000 #允許連接超時的最大時間5s

也可以設置aof日誌文件
appendonly yes #將no改爲yes
注意:修改配置文件時候,對liunx指令應該要熟悉。在這裏我們使用vi的替換命令,這樣就可以更快的修改配置

:%s/700x/7001/g

5,配置成功,分別啓動

建議寫個shell文件,作爲集羣的整體啓動,這裏如何寫就不做介紹了
啓動指令:

src/redis-server /opt/redis/cluster/7001/redis.conf

redis相關進程查詢指令:

ps -ef | grep redis

下圖是我啓動7001的截圖,我還啓動了6379(之前啓動沒關)
這裏寫圖片描述

現在集羣只是有這麼服務器啓動了,但各個服務是獨立的,並沒有聯繫。
從redis3.0之後纔有了cluster集羣配置。並且由ruby執行管理。

6 .安裝ruby

本人建議源碼安裝,yum安裝的時候,ruby版本不夠,帶來問題就很煩。
ruby安裝教程

安完ruby他會提示少了rubygems依賴

7 .安裝rubygems

rubygems安裝教程

之後還是會提示錯誤,還差一個ruby與redis的插件

8 .安裝ruby與redis的插件

安裝ruby與redis的插件教程

9 .配置集羣關係

這裏寫圖片描述

命令:

./redis-trib.rb create --replicas 1 ip:port ip:port ip:port ip:portip:port

命令解釋:
create 創建
replicas 集羣
1 master / slave 的值
後面依次爲ip地址和端口號

默認: 跟據主機的臺數,和比值,就可以得到master爲m臺,前m臺爲master,後面的爲slave,且根據比值,根據前後關係進行master-slave對應。

當前集羣結構爲:
這裏寫圖片描述

這樣的集羣優勢在於:
數據操作是分片的,這樣每份數據的容災處理,可以利用master下對應的slave進行處理。數據量容量更大。對於master掛了,該 master對應的小集羣進行選舉

10 .檢查集羣

進入任意一個服務器的客戶端

cluster info  #查看集羣狀態
cluster nodes  #查看每個節點擔任的角色以及,從屬關係

這裏寫圖片描述

11 .關閉指令

通過kill殺死進程

kill [pid]

如果需要參考jedis連接redis cluster測試可以戳這裏

發佈了62 篇原創文章 · 獲贊 90 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章