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

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.xdnf.cn/news/7972.html

相关文章:

  • Android-ViewModel+LiveData学习总结
  • Python爬虫实战:研究Grab 框架相关技术
  • HTTP Digest 认证:原理剖析与服务端实现详解
  • 如何开发一个MCP Server
  • Google机器学习实践指南(梯度下降篇)
  • 关于pgSQL配置后Navicat连接不上的解决方法
  • JAVA开发工具延长方案
  • 大模型在闭合性胫骨平台骨折诊疗全流程中的应用研究报告
  • MySql添加非空字段时的“伪空”问题
  • Elasticsearch搜索排名优化
  • 如何在 Mac M4 芯片电脑上卸载高版本的 Node.js
  • el-radio-group 与 el-dropdown 组合使用的注意事项
  • 根据您的硬件配置(16GB显存+64GB内存)和性能要求(≥80 token/s)
  • 学习路之uniapp--unipush2.0推送功能--给自己发通知
  • 【C++】模板下(泛型编程)
  • 【人工智能发展史】从黎明到曙光02
  • MySQL字符串拼接方法全解析
  • spring cloud config更新配置
  • OpenCV CUDA模块图像过滤------用于创建一个最大值盒式滤波器(Max Box Filter)函数createBoxMaxFilter()
  • 【web全栈】若依框架B站学习视频:基础篇01-04
  • 【Linux我做主】探秘进程与fork
  • docker-compose使用详解
  • 在 Docusaurus 博客中显示文章阅读次数
  • ABAP BADI: ME_PROCESS_PO_CUST~PROCESS_ITEM 报错消息异常处理
  • 信息系统项目管理师考前练习1
  • IOMMU简介
  • 人脸识别备案介绍
  • 权限控制相关实现
  • java小结(一)
  • mybatisplus的分页查询插件