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即可

相关推荐
haixingtianxinghai2 小时前
Redis的定期删除和惰性删除
数据库·redis·缓存
岁岁种桃花儿12 小时前
kubenetes从入门到上天系列第二十一篇:Kubernetes安装Ingress实战
云原生·容器·kubernetes
洛阳泰山14 小时前
MaxKB4j Docker Compose 部署指南
java·docker·llm·springboot·rag·maxkb4j
程序员老赵14 小时前
超全 Docker 镜像源配置指南|Windows/Mac/Linux一键搞定,拉镜像再也不卡顿
linux·后端·容器
JavaGuide14 小时前
MiniMax M2.7 发布!Redis 故障排查 + 跨语言重构场景实测,表现如何?
redis·后端·ai·ai编程
一殊酒15 小时前
【Docker】Docker Desktop 安装指南及汉化教程
运维·docker·容器
weixin_4563216415 小时前
Java架构设计:Redis持久化方案整合实战
java·开发语言·redis
Drone_xjw16 小时前
【环境搭建】Windows 10上使用Docker搭建本地Git仓库(Gitea)完整教程
windows·git·docker
苦瓜小生16 小时前
【黑马点评学习笔记 | 实战篇 】| 6-Redis消息队列
redis·笔记·后端
fy1216317 小时前
GO 快速升级Go版本
开发语言·redis·golang