温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

docker compose如何启动redis多机集群

发布时间:2022-07-14 09:54:41 来源:亿速云 阅读:191 作者:iii 栏目:开发技术

这篇文章主要介绍了docker compose如何启动redis多机集群的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇docker compose如何启动redis多机集群文章都会有所收获,下面我们一起来看看吧。

    1. 环境说明

    节点IP
    redis-node-110.10.239.31
    redis-node-210.10.239.32
    redis-node-310.10.239.33
    redis-node-410.10.239.34
    redis-node-510.10.239.35
    redis-node-610.10.239.36

    2. 集群部署

    redis-node-1

    yml 文件

    version: '2.2'
    services:
      redis-node-1:
        image: bitnami/redis-cluster:7.0
        restart: always
        container_name: redis-node-1
        network_mode: "host"
        volumes:
          - ./redis-cluster_data-1:/bitnami/redis/data
        environment:
          - 'REDIS_PASSWORD=liubei@161'
          - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'

    持久化存储

    因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。
    如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

    [root@liubei-01 redis-cluster]# mkdir ./redis-cluster_data-1
    [root@liubei-01 redis-cluster]# chown 1001  ./redis-cluster_data-1

    启动

    [root@liubei-01 redis-cluster]# docker-compose up -d

    查看结果

    [root@liubei-01 redis-cluster]# docker-compose ps
        Name                  Command               State                        Ports
    --------------------------------------------------------------------------------------------------------
    redis-node-1   /opt/bitnami/scripts/redis ...   Up

    redis-node-2

    version: '2.2'
    services:
      redis-node-2:
        image: bitnami/redis-cluster:7.0
        restart: always
        container_name: redis-node-2
        network_mode: "host"
        volumes:
          - ./redis-cluster_data-2:/bitnami/redis/data
        environment:
          - 'REDIS_PASSWORD=liubei@161'
          - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'

    持久化存储

    因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。
    如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

    [root@liubei-02 redis-cluster]# mkdir ./redis-cluster_data-2
    [root@liubei-02 redis-cluster]# chown 1001  ./redis-cluster_data-2

    启动

    [root@liubei-02 redis-cluster]# docker-compose up -d

    查看结果

    [root@liubei-02 redis-cluster]# docker-compose ps
        Name                  Command               State                        Ports
    --------------------------------------------------------------------------------------------------------
    redis-node-2   /opt/bitnami/scripts/redis ...   Up

    redis-node-3

    version: '2.2'

    services:
      redis-node-3:
        image: bitnami/redis-cluster:7.0
        restart: always
        container_name: redis-node-3
        network_mode: "host"
        volumes:
          - ./redis-cluster_data-3:/bitnami/redis/data
        environment:
          - 'REDIS_PASSWORD=liubei@161'
          - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'

    持久化存储

    因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。
    如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

    [root@liubei-03 redis-cluster]# mkdir ./redis-cluster_data-3
    [root@liubei-03 redis-cluster]# chown 1001  ./redis-cluster_data-3

    启动

    [root@liubei-03 redis-cluster]# docker-compose up -d

    查看结果

    [root@liubei-03 redis-cluster]# docker-compose ps
        Name                  Command               State                        Ports
    --------------------------------------------------------------------------------------------------------
    redis-node-3   /opt/bitnami/scripts/redis ...   Up

    redis-node-4

    version: '2.2'
    services:
      redis-node-2:
        image: bitnami/redis-cluster:7.0
        restart: always
        container_name: redis-node-4
        network_mode: "host"
        volumes:
          - ./redis-cluster_data-4:/bitnami/redis/data
        environment:
          - 'REDIS_PASSWORD=liubei@161'
          - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'

    持久化存储

    因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。
    如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

    [root@liubei-04 redis-cluster]# mkdir ./redis-cluster_data-4
    [root@liubei-04 redis-cluster]# chown 1001  ./redis-cluster_data-4

    启动

    [root@liubei-04 redis-cluster]# docker-compose up -d

    查看结果

    [root@liubei-04 redis-cluster]# docker-compose ps
        Name                  Command               State                        Ports
    --------------------------------------------------------------------------------------------------------
    redis-node-4   /opt/bitnami/scripts/redis ...   Up

    redis-node-5

    version: '2.2'

    services:
      redis-node-5:
        image: bitnami/redis-cluster:7.0
        restart: always
        container_name: redis-node-5
        network_mode: "host"
        volumes:
          - ./redis-cluster_data-5:/bitnami/redis/data
        environment:
          - 'REDIS_PASSWORD=liubei@161'
          - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'

    持久化存储

    因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。
    如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

    [root@liubei-05 redis-cluster]# mkdir ./redis-cluster_data-5
    [root@liubei-05 redis-cluster]# chown 1001  ./redis-cluster_data-5

    启动

    [root@liubei-05 redis-cluster]# docker-compose up -d

    查看结果

    [root@liubei-05 redis-cluster]# docker-compose ps
        Name                  Command               State                        Ports
    --------------------------------------------------------------------------------------------------------
    redis-node-5   /opt/bitnami/scripts/redis ...   Up     

    redis-node-6

    version: '2.2'

    services:
      redis-node-6:
        image: bitnami/redis-cluster:7.0
        restart: always
        container_name: redis-node-6
        network_mode: "host"
        volumes:
          - ./redis-cluster_data-6:/bitnami/redis/data
        environment:
          - 'REDIS_PASSWORD=liubei@161'
          - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'

    持久化存储

    因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。
    如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

    [root@liubei-06 redis-cluster]# mkdir ./redis-cluster_data-6
    [root@liubei-06 redis-cluster]# chown 1001  ./redis-cluster_data-6

    启动

    [root@liubei-06 redis-cluster]# docker-compose up -d

    查看结果

    [root@liubei-06 redis-cluster]# docker-compose ps
        Name                  Command               State                        Ports
    --------------------------------------------------------------------------------------------------------
    redis-node-6   /opt/bitnami/scripts/redis ...   Up

    3. 初始化

     redis-cli -h 10.10.239.31 -a liubei@161 --cluster create 10.10.239.31:6379 10.10.239.32:6379 10.10.239.33:6379 10.10.239.34:6379 10.10.239.35:6379 10.10.239.36:6379 --cluster-replicas 1

    4. 测试

    I have no name!@0fc49662e765:/$ redis-cli -h 10.10.239.31 -a liubei@161 -c
    Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    10.10.239.31:6379> set name liubei
    -> Redirected to slot [5798] located at 10.10.239.35:6379
    OK
    10.10.239.35:6379> get name
    "liubei"
    10.10.239.35:6379>

    说明:
    进入10.10.239.31的redis容器,从该节点进入集群,写入数据。
    显示写入在 10.10.239.35 这个节点
    同时我们的连接也跳到了这个节点。
    我们读一下,读到了数据。
    换一个节点连接,效果相同。

    关于“docker compose如何启动redis多机集群”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“docker compose如何启动redis多机集群”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI