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

Windows 系统下使用 Docker 搭建Redis 集群(6 节点,带密码)

🧾 Windows 系统下使用 Docker 搭建 Redis 集群(6 节点,带密码)


✅ 前提条件

  • Windows 10 或更高版本
  • 已安装并运行 Docker Desktop
  • 只有 C 盘可用
  • Redis 节点数量:6 个(3 主 3 从)
  • Redis 密码:123456
  • Redis 端口范围:6380 - 6385

📦 第一步:创建 Redis 配置文件目录

mkdir C:\RedisCluster
cd C:\RedisCluster

🔧 第二步:创建 6 个 Redis 配置文件(redis.conf)

💡 每个节点一个配置文件,启用集群模式并设置密码。

创建 redis-6380.conf

echo "port 6380
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 5000
appendonly yes
requirepass 123456
masterauth 123456" > redis-6380.conf

创建 redis-6381.conf

echo "port 6381
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-6381.conf
cluster-node-timeout 5000
appendonly yes
requirepass 123456
masterauth 123456" > redis-6381.conf

创建 redis-6382.conf

echo "port 6382
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-6382.conf
cluster-node-timeout 5000
appendonly yes
requirepass 123456
masterauth 123456" > redis-6382.conf

创建 redis-6383.conf

echo "port 6383
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-6383.conf
cluster-node-timeout 5000
appendonly yes
requirepass 123456
masterauth 123456" > redis-6383.conf

创建 redis-6384.conf

echo "port 6384
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-6384.conf
cluster-node-timeout 5000
appendonly yes
requirepass 123456
masterauth 123456" > redis-6384.conf

创建 redis-6385.conf

echo "port 6385
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-6385.conf
cluster-node-timeout 5000
appendonly yes
requirepass 123456
masterauth 123456" > redis-6385.conf

🌐 第三步:创建自定义 Docker 网络

docker network create redis-cluster-net

🐳 第四步:启动 6 个 Redis 容器

⚠️ 注意 -v 参数将每个容器的数据和配置挂载到本地目录。

启动 Redis 实例 6380

docker run --name redis-6380 --network redis-cluster-net -p 6380:6380 -v C:\RedisCluster\redis-6380.conf:/usr/local/etc/redis/redis.conf -v C:\RedisCluster\data-6380:/data -d redis redis-server /usr/local/etc/redis/redis.conf

启动 Redis 实例 6381

docker run --name redis-6381 --network redis-cluster-net -p 6381:6381 -v C:\RedisCluster\redis-6381.conf:/usr/local/etc/redis/redis.conf -v C:\RedisCluster\data-6381:/data -d redis redis-server /usr/local/etc/redis/redis.conf

启动 Redis 实例 6382

docker run --name redis-6382 --network redis-cluster-net -p 6382:6382 -v C:\RedisCluster\redis-6382.conf:/usr/local/etc/redis/redis.conf -v C:\RedisCluster\data-6382:/data -d redis redis-server /usr/local/etc/redis/redis.conf

启动 Redis 实例 6383

docker run --name redis-6383 --network redis-cluster-net -p 6383:6383 -v C:\RedisCluster\redis-6383.conf:/usr/local/etc/redis/redis.conf -v C:\RedisCluster\data-6383:/data -d redis redis-server /usr/local/etc/redis/redis.conf

启动 Redis 实例 6384

docker run --name redis-6384 --network redis-cluster-net -p 6384:6384 -v C:\RedisCluster\redis-6384.conf:/usr/local/etc/redis/redis.conf -v C:\RedisCluster\data-6384:/data -d redis redis-server /usr/local/etc/redis/redis.conf

启动 Redis 实例 6385

docker run --name redis-6385 --network redis-cluster-net -p 6385:6385 -v C:\RedisCluster\redis-6385.conf:/usr/local/etc/redis/redis.conf -v C:\RedisCluster\data-6385:/data -d redis redis-server /usr/local/etc/redis/redis.conf

🖥️ 第五步:获取容器的内部 IP 地址

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

输出示例:

/redis-6380 - 172.18.0.2
/redis-6381 - 172.18.0.3
/redis-6382 - 172.18.0.4
/redis-6383 - 172.18.0.5
/redis-6384 - 172.18.0.6
/redis-6385 - 172.18.0.7

记录这些 IP 地址备用。


🔁 第六步:验证容器之间网络通信(可选但推荐)

进入任意一个 Redis 容器进行测试:

docker exec -it redis-6380 /bin/bash

然后尝试 ping 其他节点:

apt update && apt install -y iputils-ping
ping 172.18.0.3

也可以用 telnet 测试端口连通性:

apt install -y telnet
telnet 172.18.0.3 6381

返回 Connected to ... 表示通信正常。

退出容器:

exit

🧱 第七步:创建 Redis 集群

使用所有节点的内部 IP 和端口创建集群(注意换行符 `):

docker run -it --rm --network redis-cluster-net redis redis-cli --cluster create `
172.18.0.2:6380 `
172.18.0.3:6381 `
172.18.0.4:6382 `
172.18.0.5:6383 `
172.18.0.6:6384 `
172.18.0.7:6385 `
--cluster-replicas 1 -a 123456

当提示如下时:

Can I set the above configuration? (type 'yes' to accept):

输入:

yes

等待几秒钟,集群创建完成。


✅ 第八步:验证 Redis 集群状态

连接到任意一个节点查看集群信息:

docker exec -it redis-6380 /bin/bash
redis-cli -c -h 172.18.0.2 -p 6380 -a 123456

在 Redis CLI 中执行:

cluster info
cluster nodes

你应该看到类似如下的输出:

cluster_state:ok
cluster_slots_assigned:16384
...

说明集群已经成功建立。


🧼 第九步:清理命令(可选)

停止并删除容器

docker rm -f redis-6380 redis-6381 redis-6382 redis-6383 redis-6384 redis-6385

删除数据卷

docker volume rm redis-data-6380 redis-data-6381 redis-data-6382 redis-data-6383 redis-data-6384 redis-data-6385

删除 Docker 网络

docker network rm redis-cluster-net

删除配置和数据目录(可选)

手动删除:

C:\RedisCluster

📝 总结

步骤内容
第一步创建 Redis 配置文件目录
第二步创建 6 个 Redis 配置文件
第三步创建自定义 Docker 网络
第四步启动 6 个 Redis 容器
第五步获取容器的内部 IP 地址
第六步测试容器之间的通信
第七步使用 redis-cli 创建集群
第八步验证集群是否正常工作
第九步清理资源

http://www.xdnf.cn/news/216577.html

相关文章:

  • C++日更八股--first
  • SpringBoot应用:Docker与Kubernetes全栈实战秘籍
  • git fetch和git pull的区别
  • 域对齐是什么
  • 判断用户选择的Excel单元格区域是否跨页?
  • 力扣hot100——239.滑动窗口最大值
  • 在大数据环境下,使用spingboot为Android APP推送数据方案
  • 【Machine Learning Q and AI 读书笔记】- 02 自监督学习
  • 主流微前端框架比较
  • java面试题目
  • Nacos源码—2.Nacos服务注册发现分析四
  • 三种机器学习类型
  • Glide 如何加载远程 Base64 图片
  • MobileNetV2: 反向残差和线性瓶颈
  • 应急演练考试排查-DC01
  • 【动态导通电阻】GaN功率器件中动态导通电阻退化的机制、表征及建模方法
  • AI 的未来是开源?DeepSeek 正在书写新篇章!
  • 算法基础学习|02归并排序——分治
  • 封装js方法 构建树结构和扁平化树结构
  • 20_大模型微调和训练之-基于LLamaFactory+LoRA微调LLama3后格式合并
  • 水力压裂多裂缝扩展诱发光纤应变演化试验研究
  • 基于Mamba2的文本生成实战
  • 什么是 MCP?AI 应用的“USB-C”标准接口详解
  • AI赋能的问答系统:2025年API接口实战技巧
  • Vulkan与OpenGL的对比
  • 服务器主动发送响应?聊天模块如何实现?
  • 【Vue3/Typescript】合并多个pdf并预览打印,兼容低版本浏览器
  • CentOS NFS共享目录
  • 【GESP】C++三级练习 luogu-B2118 验证子串
  • 后验概率最大化(MAP)估计算法原理以及相具体的应用实例附C++代码示例