1. 首先是装置docker以及docker-compose
    这个步骤很简略就略过了
  2. 而后是下载redis的镜像
    docker pull redis:5.0
    这边是基于redis5.0版本去装置的,所以指定了版本号。
    如果不加版本号,默认是下载最新版本的redis 这里留神辨别下。
  3. 配置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"
  4. 创立配置文件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"
  5. 启动redis

    这时候只是启动了5个redis节点。并非集群

  6. 随机抉择一个节点进入容器中:
    进行集群创立:

    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

  7. 到此集群就创立胜利
    留神:此示例次要是测试构建redis集群
    若要利用到生产环境 能够参考思路,不要间接照搬。