Redis5基于docker搭建集群

  1. 首先是安装docker以及docker-compose
    这个步骤很简单就略过了
  2. 然后是下载redis的镜像
    docker pull redis:5.0
    这边是基于redis5.0版本去安装的,所以指定了版本号。
    如果不加版本号,默认是下载最新版本的redis 这里注意区分下。
  3. 配置redis
    在本地创建指定的redis个数,我是建立6个redis实例
    Redis5基于docker搭建集群_第1张图片
    每个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"
  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:/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"
    
  5. 启动redis

    Redis5基于docker搭建集群_第2张图片

    这时候只是启动了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

    Redis5基于docker搭建集群_第3张图片

  7. 到此集群就创建成功
    注意:此示例主要是测试构建redis集群
    若要应用到生产环境 可以参考思路,不要直接照搬。

你可能感兴趣的:(redis集群docker)