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
      在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章