docker下创建redis集群方案

首先要解决的问题是redis镜像的问题,如果因网络问题无法docker pull,就配置国内加速

创建文件

bash 复制代码
touch /etc/docker/daemon.json

写入内容

bash 复制代码
{
    "registry-mirrors": [
        "https://docker.1panel.live",
        "https://docker-0.unsee.tech",
        "https://docker.1panel.live",
        "https://registry.dockermirror.com",
        "https://docker.imgdb.de",
        "https://docker.m.daocloud.io",
        "https://hub.firefly.store",
        "https://hub.littlediary.cn",
        "https://hub.rat.dev",
        "https://dhub.kubesre.xyz",
        "https://cjie.eu.org",
        "https://docker.kejilion.pro",
        "https://docker.1panelproxy.com",
        "https://docker.hlmirror.com",
        "https://hub.fast360.xyz",
        "https://ghcr.io"
    ]
}

其次就开始准备着手部署redis集群

1、创建redis.conf,每个节点一个文件【redis1.conf,redis2.conf,redis3.conf,redis4.conf,redis5.conf,】,端口不能相同,conf文件内容如下,下方的注释要移除,不要在文件中体现,会报错

bash 复制代码
port 6379 
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
appendfsync everysec
requirepass 123456 #redis密码
masterauth 123456 #redis集群节点认证密码
maxmemory 1gb
maxmemory-policy allkeys-lru

2、创建好配置文件后,创建docker-compose.yml,内容如下,有需要调整的自行调整即可

bash 复制代码
version: "3.8"
services:
  redis-master1:
    image: redis:6-alpine
    container_name: redis-master1
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - "6379:6379"
      - "16379:16379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./redis-master1/data:/data
    command:
      - "redis-server"
      - "/usr/local/etc/redis/redis.conf"

  redis-master2:
    image: redis:6-alpine
    container_name: redis-master2
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - "6380:6380"
      - "16380:16380"
    volumes:
      - ./redis1.conf:/usr/local/etc/redis/redis.conf
      - ./redis-master2/data:/data
    command:
      - "redis-server"
      - "/usr/local/etc/redis/redis.conf"

  redis-master3:
    image: redis:6-alpine
    container_name: redis-master3
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - "6381:6381"
      - "16381:16381"
    volumes:
      - ./redis2.conf:/usr/local/etc/redis/redis.conf
      - ./redis-master3/data:/data
    command:
      - "redis-server"
      - "/usr/local/etc/redis/redis.conf"

  redis-slave1:
    image: redis:6-alpine
    container_name: redis-slave1
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - "6382:6382"
      - "16382:16382"
    volumes:
      - ./redis3.conf:/usr/local/etc/redis/redis.conf
      - ./redis-slave1/data:/data
    command:
      - "redis-server"
      - "/usr/local/etc/redis/redis.conf"

  redis-slave2:
    image: redis:6-alpine
    container_name: redis-slave2
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - "6383:6383"
      - "16383:16383"
    volumes:
      - ./redis4.conf:/usr/local/etc/redis/redis.conf
      - ./redis-slave2/data:/data
    command:
      - "redis-server"
      - "/usr/local/etc/redis/redis.conf"

  redis-slave3:
    image: redis:6-alpine
    container_name: redis-slave3
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - "6384:6384"
      - "16384:16384"
    volumes:
      - ./redis5.conf:/usr/local/etc/redis/redis.conf
      - ./redis-slave3/data:/data
    command:
      - "redis-server"
      - "/usr/local/etc/redis/redis.conf"

3、在docker-compose.yml文件所在文件夹下,同时redis.conf也要在该文件夹下,执行命令

bash 复制代码
docker-compose up -d

4、执行成功后,进入任意一个容器

bash 复制代码
docker exec -it redis-master1 sh

5、执行如下命令,创建集群。此处注意,各个节点的ip一定要保证能够在容器内与之通信,否则无法建立集群,如果有需要对网络调整的,在docker-compose.yml进行配置

bash 复制代码
redis-cli --cluster create 192.168.1.202:6379 192.168.1.202:6380 192.168.1.202:6381 192.168.1.202:6382 192.1681.202:6383 192.168.1.202:6384 --cluster-replicas 1 -a '123456'

6、集群创建成功,开始验证,在集群中的节点中输入命令

bash 复制代码
redis-cli -h 127.0.0.1 -p 6379

7、输入密码

bash 复制代码
AUTH default 123456

8、查看集群信息

bash 复制代码
cluster info

9、输出ok即可

相关推荐
qq_229058013 小时前
docker中检测进程的内存使用量
java·docker·容器
java_logo4 小时前
使用 Docker 部署 Clawdbot(官方推荐方式)
docker·容器·clawdbot·clawdbot部署·clawdbot部署手册·clawdbot部署文档·docker clawdbot
玉树临风江流儿4 小时前
docker镜像加速器配置步骤
运维·docker·容器
派大鑫wink5 小时前
【Day61】Redis 深入:吃透数据结构、持久化(RDB/AOF)与缓存策略
数据结构·redis·缓存
短剑重铸之日5 小时前
《SpringCloud实用版》生产部署:Docker + Kubernetes + GraalVM 原生镜像 完整方案
后端·spring cloud·docker·kubernetes·graalvm
lots洋7 小时前
使用docker-compose安装mysql+redis+nacos
redis·mysql·docker
GHL2842710907 小时前
Docker Desktop 启动报错“Virtualization support not detected“
c++·docker·容器
susu10830189118 小时前
docker启动kafka
docker·容器·kafka
h7ml9 小时前
高并发场景下查券返利机器人的请求合并与缓存预热策略(Redis + Caffeine 实践)
数据库·redis·缓存