ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

运维(25) docker-compose部署Redis Cluster集群

2022-02-27 23:30:00  阅读:203  来源: 互联网

标签:25 compose 运维 容器 -- redis cluster conf docker


文章目录

一、前言

  1. 运维(23) docker-compose部署redis主从复制模式
  2. 运维(24) docker-compose部署redis一主二从三哨兵模式

本文将基于以下环境部署Redis Cluster集群

  1. CentOS Linux release 7.6.1810 (Core)
  2. Docker version 20.10.5, build 55c4c88
  3. docker-compose version 1.28.6, build 5db8d86f

tips: 本文仅基于单台服务器环境部署

二、docker-compose部署Redis Cluster集群

可参考 https://gitee.com/zhengqingya/docker-compose

# 准备
git clone https://gitee.com/zhengqingya/docker-compose.git
cd docker-compose/Liunx

# 当前目录下所有文件赋予权限(读、写、执行)
chmod -R 777 ./redis-cluster

# 运行 -- Redis Cluster 集群
docker-compose -f docker-compose-redis-cluster.yml -p redis up -d

运行成功
在这里插入图片描述

创建集群

docker exec -it redis-6381 redis-cli -h 172.22.0.11 -p 6381 -a 123456 --cluster create 172.22.0.11:6381 redis-6382:6382 redis-6383:6383 redis-6384:6384 redis-6385:6385 redis-6386:6386 --cluster-replicas 1

在这里插入图片描述

查看集群

# 连接集群某个节点
docker exec -it redis-6381 redis-cli -c -h redis-6381 -p 6381 -a 123456
# 查看集群信息
cluster info
# 查看集群节点信息
cluster nodes
# 查看slots分片
cluster slots

在这里插入图片描述

相关配置文件

docker-compose-redis-cluster.yml
version: '3'

# 网桥redis -> 方便相互通讯
networks:
  redis:
    ipam:
      driver: default
      config:
        - subnet: "172.22.0.0/24"

services:
  redis-6381:
    image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8                   # 镜像'redis:6.0.8'
    container_name: redis-6381                                                       # 容器名为'redis-6381'
    restart: unless-stopped                                                                   # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    command: redis-server /etc/redis/redis.conf --port 6381 --requirepass 123456 --appendonly no  # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置,连接并认证master节点
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 数据卷挂载路径设置,将本机目录映射到容器目录
        - "./redis-cluster/redis-6381/data:/data"
        - "./redis-cluster/redis-6381/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
        - "6381:6381"
    networks:
      redis:
        ipv4_address: 172.22.0.11
  redis-6382:
    image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8                   # 镜像'redis:6.0.8'
    container_name: redis-6382                                                       # 容器名为'redis-6382'
    restart: unless-stopped                                                                   # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    command: redis-server /etc/redis/redis.conf --port 6382 --requirepass 123456 --appendonly no  # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置,连接并认证master节点
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 数据卷挂载路径设置,将本机目录映射到容器目录
        - "./redis-cluster/redis-6382/data:/data"
        - "./redis-cluster/redis-6382/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
        - "6382:6382"
    networks:
      redis:
        ipv4_address: 172.22.0.2
  redis-6383:
    image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8                   # 镜像'redis:6.0.8'
    container_name: redis-6383                                                       # 容器名为'redis-6383'
    restart: unless-stopped                                                                   # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    command: redis-server /etc/redis/redis.conf --port 6383 --requirepass 123456 --appendonly no  # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置,连接并认证master节点
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 数据卷挂载路径设置,将本机目录映射到容器目录
        - "./redis-cluster/redis-6383/data:/data"
        - "./redis-cluster/redis-6383/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
        - "6383:6383"
    networks:
      redis:
        ipv4_address: 172.22.0.3
  redis-6384:
    image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8                   # 镜像'redis:6.0.8'
    container_name: redis-6384                                                       # 容器名为'redis-6384'
    restart: unless-stopped                                                                   # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    command: redis-server /etc/redis/redis.conf --port 6384 --requirepass 123456 --appendonly no  # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置,连接并认证master节点
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 数据卷挂载路径设置,将本机目录映射到容器目录
        - "./redis-cluster/redis-6384/data:/data"
        - "./redis-cluster/redis-6384/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
        - "6384:6384"
    networks:
      redis:
        ipv4_address: 172.22.0.4
  redis-6385:
    image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8                   # 镜像'redis:6.0.8'
    container_name: redis-6385                                                       # 容器名为'redis-6385'
    restart: unless-stopped                                                                   # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    command: redis-server /etc/redis/redis.conf --port 6385 --requirepass 123456 --appendonly no  # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置,连接并认证master节点
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 数据卷挂载路径设置,将本机目录映射到容器目录
        - "./redis-cluster/redis-6385/data:/data"
        - "./redis-cluster/redis-6385/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
        - "6385:6385"
    networks:
      redis:
        ipv4_address: 172.22.0.5
  redis-6386:
    image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8                    # 镜像'redis:6.0.8'
    container_name: redis-6386                                                        # 容器名为'redis-6386'
    restart: unless-stopped                                                                   # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    command: redis-server /etc/redis/redis.conf --port 6386 --requirepass 123456 --appendonly no  # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    volumes:                            # 数据卷挂载路径设置,将本机目录映射到容器目录
      - "./redis-cluster/redis-6386/data:/data"
      - "./redis-cluster/redis-6386/config/redis.conf:/etc/redis/redis.conf"  # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
    ports:                              # 映射端口
      - "6386:6386"
    networks:
      redis:
        ipv4_address: 172.22.0.6
redis.conf

参考 http://download.redis.io/redis-stable/redis.conf

集群主要新增了如下配置
在这里插入图片描述

三、测试

在这里插入图片描述


今日分享语句:
一个人必须面对自己不能承受的东西,然后起个名字叫成长。

标签:25,compose,运维,容器,--,redis,cluster,conf,docker
来源: https://blog.csdn.net/qq_38225558/article/details/123172751

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有