- 首先是装置docker以及docker-compose
这个步骤很简略就略过了 - 而后是下载redis的镜像
docker pull redis:5.0
这边是基于redis5.0版本去装置的,所以指定了版本号。
如果不加版本号,默认是下载最新版本的redis 这里留神辨别下。 配置redis
在本地创立指定的redis个数,我是建设6个redis实例
每个redis配置都是雷同的 列一份redis次要配置项redis.confbind 0.0.0.0cluster-enabled yescluster-config-file "/redis/conf/nodes.conf"cluster-node-timeout 5000protected-mode noport 6379daemonize nodir "/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:/rediscommand: /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:/rediscommand: /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:/rediscommand: /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:/rediscommand: /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:/rediscommand: /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:/rediscommand: /usr/local/bin/redis-server /redis/conf/redis.conf# 网段设置networks: #援用内部事后定义好的网段 redis_5_sm:driver: bridgeipam: #定义网段 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集群
若要利用到生产环境 能够参考思路,不要间接照搬。