Docker搭建3主3從Redis Cluster集羣

本文使用鏡像由慕課網的神思者老師提供

本文使用鏡像是已經配置好了的Redis鏡像,
如果需要自定義可修改配置文件或用官方Redis鏡像進行部署

1. 拉取配置好的Redis鏡像

docker pull yyyyttttwwww/redis

2. 創建集羣使用的網段redis_net

docker network create --subnet=172.19.0.0/16 redis_net

3. 修改鏡像的名稱

將鏡像yyyyttttwwww/redis的名稱修改爲redis,方便進行使用

docker tag yyyyttttwwww/redis redis

4. 生成6個Redis容器

   docker run -it -d --name r1 -p 5001:6379 --net=redis_net--ip 172.19.0.2 redis bash
   docker run -it -d --name r2 -p 5002:6379 --net=redis_net--ip 172.19.0.3 redis bash
   docker run -it -d --name r3 -p 5003:6379 --net=redis_net--ip 172.19.0.4 redis bash
   docker run -it -d --name r4 -p 5004:6379 --net=redis_net--ip 172.19.0.5 redis bash
   docker run -it -d --name r5 -p 5005:6379 --net=redis_net--ip 172.19.0.6 redis bash
   docker run -it -d --name r6 -p 5006:6379 --net=redis_net--ip 172.19.0.7 redis bash
  • 容器的命名分別爲r1-r6
  • 容器映射的宿主機端口對應:5001-5006
  • 容器均使用網關redis_net
  • 容器分別映射ip對應:172.19.0.2-172.19.0.7

5. 檢驗容器創建是否成功

使用docker ps -a | grep redis ,查看各個節點是否正常運行中
在這裏插入圖片描述

6. 進入每個容器啓動Redis

以r1爲例

  • 以交互方式進入容器:docker exec -it r1 bash
  • 覆蓋配置文件:cp /home/redis/redis.conf /usr/redis/redis.conf
  • 進入到啓動目錄:cd /usr/redis/src
  • 啓動Redis:./redis-server ../redis.conf

重複上述操作將6臺容器都啓動

7. 集羣搭建

鏡像中已經安裝好了ruby的環境並編寫好了集羣啓動的腳本,可以直接進行使用

  • 進入任意一個節點,如交互式進入r1,執行docker exec -it r1 bash
  • /usr/redis/目錄下創建一個空目錄cluster
cd /usr/redis/
mkdir cluster
  • 將/usr/redis/src/下的 redis‐trib.rb複製到/usr/redis/cluster/目錄下
cd /usr/redis/src/
cp  redis‐trib.rb ../cluster
  • 進入/usr/redis/cluster/執行集羣啓動腳本
cd ../cluster
./redis-trib.rb create --replicas 1 172.19.0.2:6379 172.19.0.3:6379 172.19.0.4:6379 172.19.0.5:6379 172.19.0.6:6379 172.19.0.7:6379

執行過程中需要輸入一次yes,執行完成集羣啓動成功

8. 測試使用Redis Cluster 集羣

  • 進入任意一個節點,如交互式進入r1,執行docker exec -it r1 bash
  • 進入到客戶端啓動目錄:cd /usr/redis/src/
  • 以集羣方式啓動客戶端程序:./redis-cli -c
  • 進入客戶端後,進行基礎的set/get操作,如:
    • set a 10086 ,a計算出hash槽爲15495,應該存放在第三個主節點,即172.19.0.4上,跳轉到172.19.0.4上
    • set b 12345,b計算出hash槽爲3300,應該存放在第一個主節點,即172.19.0.2上,跳轉回172.19.0.2
      在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章