乐趣区

关于redis集群:Redis5基于docker搭建集群

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

    这时候只是启动了 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 集群
    若要利用到生产环境 能够参考思路,不要间接照搬。
退出移动版