Centos7使用Docker实现Redis-Cluster集群部署

一.准备工作

拉取redis镜像

运行如下命令:

docker pull redis

查看镜像情况:

安装docker compose(自行查阅安装教程)

Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用程序。它通过 YAML 文件来配置应用的服务,使得用户可以轻松地管理和部署多个 Docker 容器。Docker Compose 是处理多容器应用的强大工具,简化了开发、测试和生产环境的管理。它通过清晰的配置文件和简单的命令,使得容器化应用的部署变得更加高效和一致。

二、部署redis集群

创建文件目录和所需文件

在/home/redis-cluster目录下创建如下目录结构:

├── docker-compose.yml
├── redis-6371
│   ├── conf
│   │   └── redis.conf
│   └── data
├── redis-6372
│   ├── conf
│   │   └── redis.conf
│   └── data
├── redis-6373
│   ├── conf
│   │   └── redis.conf
│   └── data
├── redis-6374
│   ├── conf
│   │   └── redis.conf
│   └── data
├── redis-6375
│   ├── conf
│   │   └── redis.conf
│   └── data
└── redis-6376
    ├── conf
    │   └── redis.conf
    └── data

创建以上目录结构命令:

如果目录尚不存在,你可能需要先创建 /home/redis-cluster 目录,或者直接执行以下命令。示例:

sudo mkdir -p /home/redis-cluster
sudo mkdir -p /home/redis-cluster/{redis-{6371..6376}/{conf,data},docker-compose.yml} && sudo touch /home/redis-cluster/redis-{6371..6376}/conf/redis.conf

/home/redis-cluster 目录下使用如下命令查看目录结构:

ls -R

redis.conf 配置文件

配置redis-6371的redis.conf文件:

切换到以下路径:/home/redis-cluster/redis-6371/conf

cd /home/redis-cluster/redis-6371/conf

编辑redis.conf文件

vi redis.conf

添加如下内容:

port 6371
cluster-enabled yes
cluster-config-file nodes-6371.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6371
cluster-announce-port 6371
cluster-announce-bus-port 16371

配置redis-6372的redis.conf文件:

切换到以下路径:/home/redis-cluster/redis-6372/conf

cd /home/redis-cluster/redis-6372/conf

编辑redis.conf文件

vi redis.conf

添加如下内容:

port 6372
cluster-enabled yes
cluster-config-file nodes-6372.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6372
cluster-announce-port 6372
cluster-announce-bus-port 16372

配置redis-6373的redis.conf文件:

切换到以下路径:/home/redis-cluster/redis-6373/conf

cd /home/redis-cluster/redis-6373/conf

编辑redis.conf文件

vi redis.conf

添加如下内容:

port 6373
cluster-enabled yes
cluster-config-file nodes-6373.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6373
cluster-announce-port 6373
cluster-announce-bus-port 16373

配置redis-6374的redis.conf文件:

切换到以下路径:/home/redis-cluster/redis-6374/conf

cd /home/redis-cluster/redis-6374/conf

编辑redis.conf文件

vi redis.conf

添加如下内容:

port 6374
cluster-enabled yes
cluster-config-file nodes-6374.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6374
cluster-announce-port 6374
cluster-announce-bus-port 16374

配置redis-6375的redis.conf文件:

切换到以下路径:/home/redis-cluster/redis-6375/conf

cd /home/redis-cluster/redis-6375/conf

编辑redis.conf文件

vi redis.conf

添加如下内容:

port 6375
cluster-enabled yes
cluster-config-file nodes-6375.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6375
cluster-announce-port 6375
cluster-announce-bus-port 16375

配置redis-6376的redis.conf文件:

切换到以下路径:/home/redis-cluster/redis-6376/conf

cd /home/redis-cluster/redis-6376/conf

编辑redis.conf文件

vi redis.conf

添加如下内容:

port 6376
cluster-enabled yes
cluster-config-file nodes-6376.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6376
cluster-announce-port 6376
cluster-announce-bus-port 16376

docker-compose 配置文件

切换目录到:/home/redis-cluster

cd /home/redis-cluster

编辑docker-compose.yml文件:

vi docker-compose.yml

添加如下内容:

version: '3.8'

services:
  redis-6371:
    image: redis:latest
    container_name: redis-6371
    ports:
      - "6371:6371"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6371.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
    volumes:
      - redis-data-6371:/data
    networks:
      - redis-cluster

  redis-6372:
    image: redis:latest
    container_name: redis-6372
    ports:
      - "6372:6372"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6372.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
    volumes:
      - redis-data-6372:/data
    networks:
      - redis-cluster

  redis-6373:
    image: redis:latest
    container_name: redis-6373
    ports:
      - "6373:6373"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6373.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
    volumes:
      - redis-data-6373:/data
    networks:
      - redis-cluster

  redis-6374:
    image: redis:latest
    container_name: redis-6374
    ports:
      - "6374:6374"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6374.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
    volumes:
      - redis-data-6374:/data
    networks:
      - redis-cluster

  redis-6375:
    image: redis:latest
    container_name: redis-6375
    ports:
      - "6375:6375"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6375.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
    volumes:
      - redis-data-6375:/data
    networks:
      - redis-cluster

  redis-6376:
    image: redis:latest
    container_name: redis-6376
    ports:
      - "6376:6376"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6376.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
    volumes:
      - redis-data-6376:/data
    networks:
      - redis-cluster
networks:
  redis-cluster:
    name: redis-cluster
    driver: bridge

volumes:
  redis-data-6371:
  redis-data-6372:
  redis-data-6373:
  redis-data-6374:
  redis-data-6375:
  redis-data-6376:


启动容器

必须在docker-compose.yml文件所在目录下启动,这里是在 /home/redis-cluster目录下

执行命令:

docker compose up -d

查看容器状态

docker ps

创建集群

执行以下命令

docker exec -it redis-6371 redis-cli --cluster create redis-6371:6379 redis-6372:6379 redis-6373:6379 redis-6374:6379 redis-6375:6379 redis-6376:6379 --cluster-replicas 1 -a 1234

执行后输入"yes"同意

成功创建集群

使用以下命令来检查集群状态:

docker exec -it redis-6371 redis-cli -a 1234 CLUSTER NODES

使用 CLUSTER INFO 检查集群信息:

docker exec -it redis-6371 redis-cli -a 1234 CLUSTER INFO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值