- 首先是装置 docker 以及 docker-compose
这个步骤很简略就略过了 - 而后是下载 redis 的镜像
docker pull redis:5.0
这边是基于 redis5.0 版本去装置的,所以指定了版本号。
如果不加版本号,默认是下载最新版本的 redis 这里留神辨别下。 -
配置 redis
在本地创立指定的 redis 个数,我是建设 6 个 redis 实例
每个 redis 配置都是雷同的 列一份 redis 次要配置项redis.conf bind 0.0.0.0 cluster-enabled yes cluster-config-file "/redis/conf/nodes.conf" cluster-node-timeout 5000 protected-mode no port 6379 daemonize no dir "/redis/data" logfile "/redis/log/redis.log"
-
创立配置文件 docker-compose.yaml
version: "3.7" # 确定 docker-composer 文件的版本 services: # 代表就是一组服务 - 简略来说一组容器 redis_200: # 这个示意服务的名称,课自定义; 留神不是容器名称 image: redis:5.0 # 指定容器的镜像文件 networks: ## 引入内部事后定义的网段 redis_5_sm: ipv4_address: 172.24.141.200 #设置 ip 地址 container_name: redis_5_cluster_200 # 这是容器的名称 ports: # 配置容器与宿主机的端口 - "6320:6379" # php java python 语言连贯 - "16320:16379" # 对节点 6379 + 10000 = 端口 对节点进行通信 volumes: # 配置数据挂载 - /data/redis/cluster/200:/redis command: /usr/local/bin/redis-server /redis/conf/redis.conf redis_201: # 这个示意服务的名称,课自定义; 留神不是容器名称 image: redis:5.0 # 指定容器的镜像文件 networks: ## 引入内部事后定义的网段 redis_5_sm: ipv4_address: 172.24.141.201 #设置 ip 地址 container_name: redis_5_cluster_201 # 这是容器的名称 ports: # 配置容器与宿主机的端口 - "6321:6379" - "16321:16379" volumes: # 配置数据挂载 - /data/redis/cluster/201:/redis command: /usr/local/bin/redis-server /redis/conf/redis.conf redis_202: # 这个示意服务的名称,课自定义; 留神不是容器名称 image: redis:5.0 # 指定容器的镜像文件 networks: ## 引入内部事后定义的网段 redis_5_sm: ipv4_address: 172.24.141.202 #设置 ip 地址 container_name: redis_5_cluster_202 # 这是容器的名称 ports: # 配置容器与宿主机的端口 - "6322:6379" - "16322:16379" volumes: # 配置数据挂载 - /data/redis/cluster/202:/redis command: /usr/local/bin/redis-server /redis/conf/redis.conf redis_203: # 这个示意服务的名称,课自定义; 留神不是容器名称 image: redis:5.0 # 指定容器的镜像文件 networks: ## 引入内部事后定义的网段 redis_5_sm: ipv4_address: 172.24.141.203 #设置 ip 地址 container_name: redis_5_cluster_203 # 这是容器的名称 ports: # 配置容器与宿主机的端口 - "6323:6379" - "16323:16379" volumes: # 配置数据挂载 - /data/redis/cluster/203:/redis command: /usr/local/bin/redis-server /redis/conf/redis.conf redis_204: # 这个示意服务的名称,课自定义; 留神不是容器名称 image: redis:5.0 # 指定容器的镜像文件 networks: ## 引入内部事后定义的网段 redis_5_sm: ipv4_address: 172.24.141.204 #设置 ip 地址 container_name: redis_5_cluster_204 # 这是容器的名称 ports: # 配置容器与宿主机的端口 - "6324:6379" - "16324:16379" volumes: # 配置数据挂载 - /data/redis/cluster/204:/redis command: /usr/local/bin/redis-server /redis/conf/redis.conf redis_205: # 这个示意服务的名称,课自定义; 留神不是容器名称 image: redis:5.0 # 指定容器的镜像文件 networks: ## 引入内部事后定义的网段 redis_5_sm: ipv4_address: 172.24.141.205 #设置 ip 地址 container_name: redis_5_cluster_205 # 这是容器的名称 ports: # 配置容器与宿主机的端口 - "6325:6379" - "16325:16379" volumes: # 配置数据挂载 - /data/redis/cluster/205:/redis command: /usr/local/bin/redis-server /redis/conf/redis.conf # 网段设置 networks: #援用内部事后定义好的网段 redis_5_sm: driver: bridge ipam: #定义网段 config: - subnet: "172.24.141.0/24"
-
启动 redis
这时候只是启动了 5 个 redis 节点。并非集群
-
随机抉择一个节点进入容器中:
进行集群创立:redis-cli --cluster create 172.24.141.200:6379 172.24.141.201:6379 172.24.141.202:6379 172.24.141.203:6379 172.24.141.204:6379 172.24.141.205:6379 --cluster-replicas 1
- 到此集群就创立胜利
留神:此示例次要是测试构建 redis 集群
若要利用到生产环境 能够参考思路,不要间接照搬。