当前位置: 首页 > article >正文

redis搭建最小的集群,3主3从

create.sh脚本用于快速部署一个Docker化的Redis集群。首先,脚本创建了一个自定义的Docker网络redis-net,并指定了子网以防止IP变动。接着,脚本设置了宿主机的公网IP,并生成了六个Redis节点的配置文件,每个配置文件都启用了集群模式、密码认证和外网访问。随后,脚本通过Docker启动六个Redis容器,分别映射到宿主机的不同端口,并挂载相应的配置文件。在容器启动后,脚本等待10秒以确保所有节点就绪,最后使用redis-cli创建Redis集群,指定主从复制比例为1:1,并提供了密码认证。运行该脚本后,用户可以通过宿主机IP和指定端口访问Redis集群。

create.sh 创建docker-redis集群

#!/bin/bash# 创建 Docker 网络(指定子网,避免 IP 变动)
docker network create --subnet=172.18.0.0/16 redis-net# 设置宿主机公网 IP(替换为你的实际公网 IP 或域名)
HOST_IP="192.168.0.220"  # 如果是内网测试,可以用内网IP;公网需用公网IP
echo "使用宿主机IP: ${HOST_IP}"# 创建 Redis 配置文件(关键:允许外网访问 + 密码认证)
for port in $(seq 7001 7006); docat > redis-${port}.conf <<EOF
bind 0.0.0.0
protected-mode no
port ${port}
requirepass 123456
masterauth 123456
cluster-enabled yes
cluster-config-file nodes-${port}.conf
cluster-node-timeout 5000
cluster-announce-ip ${HOST_IP}
cluster-announce-port ${port}
appendonly yes
EOF# 启动容器(映射宿主机端口到容器)docker run -d --name redis-${port} \--net redis-net \-p ${port}:${port} \-p 1${port}:1${port} \-v $(pwd)/redis-${port}.conf:/usr/local/etc/redis/redis.conf \redis:latest redis-server /usr/local/etc/redis/redis.conf
done# 等待所有节点启动(避免集群创建时节点未就绪)
sleep 10# 创建集群(必须使用宿主机公网IP + 密码参数)
docker run -it --rm --net redis-net redis:latest redis-cli \--cluster create \${HOST_IP}:7001 ${HOST_IP}:7002 ${HOST_IP}:7003 \${HOST_IP}:7004 ${HOST_IP}:7005 ${HOST_IP}:7006 \--cluster-replicas 1 \-a 123456

运行 create.sh 

集群

连接效果:

http://www.lryc.cn/news/2386232.html

相关文章:

  • 《帝国时代1》游戏秘籍
  • 【sylar-webserver】10 HTTP模块
  • 攻略生成模块
  • 海康NVR录像回放SDK原始流转FLV视频流:基于Java的流媒体转码(无需安装第三方插件ffmpeg)
  • 深入理解设计模式:工厂模式、单例模式
  • 运维Linux之Ansible详解学习(更新中)
  • 深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第三篇:Verilog实现I2C Master核
  • 网络世界的“变色龙“:动态IP如何重构你的数据旅程?
  • 进阶-自定义类型(结构体、位段、枚举、联合)
  • 5G 网络全场景注册方式深度解析:从信令交互到报文分析
  • ARM笔记-嵌入式系统基础
  • 一文讲透golang channel 的特点、原理及使用场景
  • upload-labs通关笔记-第19关文件上传之条件竞争
  • 第5章:任务间通信机制(IPC)全解析
  • CAPL自动化-诊断Demo工程
  • SVN被锁定解决svn is already locked
  • 【深度学习】1. 感知器,MLP, 梯度下降,激活函数,反向传播,链式法则
  • 云原生安全:网络协议TCP详解
  • 使用CentOS部署本地DeekSeek
  • Spring Boot与Eventuate Tram整合:构建可靠的事件驱动型分布式事务
  • Python:从脚本语言到工业级应用的传奇进化
  • 【排序算法】典型排序算法 Java实现
  • node.js如何实现双 Token + Cookie 存储 + 无感刷新机制
  • [DS]使用 Python 库中自带的数据集来实现上述 50 个数据分析和数据可视化程序的示例代码
  • 探索智能仓颉
  • Ubuntu 上开启 SSH 服务、禁用密码登录并仅允许密钥认证
  • LLMs之Qwen:《Qwen3 Technical Report》翻译与解读
  • springboot3 configuration
  • 从工程实践角度分析H.264与H.265的技术差异
  • 如何设计一个高性能的短链设计