美文网首页
使用 docker 搭建 redis 集群

使用 docker 搭建 redis 集群

作者: 追风骚年 | 来源:发表于2021-09-26 11:42 被阅读0次

    以官方的三主三从为例。这里面有个几个坑:

    说明几个坑

    1. redis 在集群模式下,会使用两个端口,一个是数据端口,另一个是控制端口,两个端口固定间隔固定为 10000,所以在 docker 导出端口的地方需要暴露两个端口。

    2. 搭建 redis 集群时每个服务需要使用不同端口,刚开始每个 service 都使用默认的 6379 ,所以端口类似 - 7001:6379 - 17001:16379,这样也是不行的。

    3. redis-cli --cluster create 后面只能写 ip 地址,不能使用域名,本身想使用 service name 的,没想到官方的 redis 到目前为止还是不支持的,即使是最新的 redis6,但是有个第三方的作者实现了, "bitnami/redis-cluster" 是目前支持域名的 redis 集群镜像。由于我们是提供企业级服务不能使用非官方镜像,所以还是使用 ip。

    docker-compose 配置

    version: '3'
    
    x-image:
      &default-rds
        redis:5.0.4
    
    services:
      r1:
        image: *default-rds
        command: redis-server /etc/redis/redis.conf
        ports:
          - 7001:6379
          - 17001:16379
        volumes:
          - ./redis1.conf:/etc/redis/redis.conf
    
      r2:
        image: *default-rds
        command: redis-server /etc/redis/redis.conf
        ports:
          - 7002:6379
          - 17002:16379
        volumes:
          - ./redis2.conf:/etc/redis/redis.conf
    
      r3:
        image: *default-rds
        command: redis-server /etc/redis/redis.conf
        ports:
          - 7003:6379
          - 17003:16379
        volumes:
          - ./redis3.conf:/etc/redis/redis.conf
    
      r4:
        image:  *default-rds
        command: redis-server /etc/redis/redis.conf
        ports:
          - 7004:6379
          - 17004:16379
        volumes:
          - ./redis4.conf:/etc/redis/redis.conf
    
      r5:
        image: *default-rds
        command: redis-server /etc/redis/redis.conf
        ports:
          - 7005:6379
          - 17005:16379
        volumes:
          - ./redis5.conf:/etc/redis/redis.conf
    
      r6:
        image: *default-rds
        command: redis-server /etc/redis/redis.conf
        ports:
          - 7006:6379
          - 17006:16379
        volumes:
          - ./redis6.conf:/etc/redis/redis.conf
    
    

    x-$ 开头可以复用

    redis conf 文件配置

    redis.conf1 如下

    port 7001
    # 启用集群模式
    cluster-enabled yes
    # 后台运行
    daemonize no
    # 非保护模式
    protected-mode no
    

    创建集群

    任意选择一个容器,使用 redis-cli 创建集群即可。

    $ docker-compose exec r1 bash
    $ redis-cli --cluster create 172.19.76.67:7001 172.19.76.67:7002 172.19.76.67:7003 172.19.76.67:7004 172.19.76.67:7005 172.19.76.67:7006 --cluster-replicas 1
    

    172.19.76.67 为我的宿主机 ip

    相关文章

      网友评论

          本文标题:使用 docker 搭建 redis 集群

          本文链接:https://www.haomeiwen.com/subject/qbrqnltx.html