三公机器人

牛牛机器人,三公撑船机器人,微信牛牛机器人

牛牛机器人 Docker搭建Redis集群完全指南

Docker搭建Redis集群完全指南


本指南基于Rocky Linux 10.2环境编写,完全适配你之前关注的Docker容器化部署规范,全程避开Redis

官方明确标注的“容器仅用于开发测试、生产需用K8s Redis Enterprise”的版本坑点,实现3主3从Redis

集群的快速稳定搭建。


一、前置环境校验

先确认Docker环境版本≥1.13,推荐使用最新稳定版,避免旧版本网络隔离特性导致的集群节点通信异常:

bash

docker --version

docker compose version


提前规划6个独立的宿主机目录,用于映射容器内的Redis数据与配置文件,避免容器重启后集群元数据丢失:

bash

mkdir -p /opt/redis-cluster/{7000,7001,7002,7003,7004,7005}/data


关闭宿主机防火墙的端口拦截,提前放行7000-7005集群通信端口、17000-17005集群总线端口,避免节点间握手失败。

二、集群编排文件编写


创建docker-compose.yml文件,为6个节点配置静态IP与独立端口映射,彻底规避动态IP导致容器重启后集

群拓扑断裂的问题:


yaml

version: '3.8'

networks:

  redis-cluster-net:

    ipam:

      config:

        - subnet: 172.30.0.0/16

services:

  redis-node-1:

    image: redis:7.4-alpine

    container_name: redis-node-1

    ports:

      - "7000:7000"

      - "17000:17000"

    volumes:

      - /opt/redis-cluster/7000/data:/data

    command: redis-server --port 7000 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

    networks:

      redis-cluster-net:

        ipv4_address: 172.30.0.11

  # redis-node-2到redis-node-6依次类推,分别对应端口7001-7005,静态IP顺延为172.30.0.12-172.30.0.16


三、集群启动与初始化

一键启动所有6个Redis容器,确认所有节点状态为运行中:

bash

docker compose up -d

docker compose ps


进入任意一个Redis节点容器,执行集群创建命令,自动完成3主3从的拓扑分配与哈希槽全量映射:

bash

docker exec -it redis-node-1 redis-cli --cluster create \

172.30.0.11:7000 172.30.0.12:7001 172.30.0.13:7002 \

172.30.0.14:7003 172.30.0.15:7004 172.30.0.16:7005 \

--cluster-replicas 1 --cluster-yes


四、集群可用性验证

登录任意集群节点,查看集群整体状态,确认所有16384个哈希槽全部在线:

bash

docker exec -it redis-node-1 redis-cli -p 7000 cluster info


手动触发主节点宕机,验证自动故障转移机制是否正常生效:

bash

docker pause redis-node-1


等待5秒后再次查看集群节点列表,确认原从节点自动升级为新主节点,集群服务无中断。

五、生产环境适配要点

开发测试场景下可直接使用本指南的Docker Compose方案,生产环境建议切换为Kubernetes部署

Redis Enterprise,符合Redis官方的容器化生产支持规范。

如需开启Sentinel高可用模式,只需在容器启动命令中追加-e "SENTINEL=true"参数,即可自动拉

起3个Sentinel节点完成集群监控。

结合你之前关注的ACL权限控制需求,可在启动命令中追加自定义ACL配置,为不同业务账号分配哈

希槽级别的访问权限,进一步提升集群安全性。


需要我为你补充‌Docker Redis集群一键开启ACL权限控制的完整配置文件‌,直接适配你的生产权限管控需求吗?


Powered By Z-BlogPHP 1.7.3

三公机器人,牛牛机器人,三公撑船机器人,微信牛牛机器人