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

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


✅ 前提条件

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

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

powershell 复制代码
mkdir C:\RedisCluster
cd C:\RedisCluster

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

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

创建 redis-6380.conf

powershell 复制代码
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

powershell 复制代码
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

powershell 复制代码
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

powershell 复制代码
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

powershell 复制代码
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

powershell 复制代码
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 网络

powershell 复制代码
docker network create redis-cluster-net

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

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

启动 Redis 实例 6380

powershell 复制代码
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

powershell 复制代码
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

powershell 复制代码
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

powershell 复制代码
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

powershell 复制代码
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

powershell 复制代码
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 地址

powershell 复制代码
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 容器进行测试:

powershell 复制代码
docker exec -it redis-6380 /bin/bash

然后尝试 ping 其他节点:

bash 复制代码
apt update && apt install -y iputils-ping
ping 172.18.0.3

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

bash 复制代码
apt install -y telnet
telnet 172.18.0.3 6381

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

退出容器:

bash 复制代码
exit

🧱 第七步:创建 Redis 集群

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

powershell 复制代码
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 集群状态

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

powershell 复制代码
docker exec -it redis-6380 /bin/bash
redis-cli -c -h 172.18.0.2 -p 6380 -a 123456

在 Redis CLI 中执行:

bash 复制代码
cluster info
cluster nodes

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

复制代码
cluster_state:ok
cluster_slots_assigned:16384
...

说明集群已经成功建立。


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

停止并删除容器

powershell 复制代码
docker rm -f redis-6380 redis-6381 redis-6382 redis-6383 redis-6384 redis-6385

删除数据卷

powershell 复制代码
docker volume rm redis-data-6380 redis-data-6381 redis-data-6382 redis-data-6383 redis-data-6384 redis-data-6385

删除 Docker 网络

powershell 复制代码
docker network rm redis-cluster-net

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

手动删除:

复制代码
C:\RedisCluster

📝 总结

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

相关推荐
专注VB编程开发20年1 小时前
开机自动后台运行,在Windows服务中托管ASP.NET Core
windows·后端·asp.net
weixin_438335403 小时前
分布式锁实现方式:基于Redis的分布式锁实现(Spring Boot + Redis)
数据库·redis·分布式
暮乘白帝过重山3 小时前
为什么要写RedisUtil这个类
redis·开发·暮乘白帝过重山
李洋-蛟龙腾飞公司4 小时前
HarmonyOS NEXT应用元服务常见列表操作分组吸顶场景
linux·运维·windows
码农垦荒笔记4 小时前
Git 安装闭坑指南(仅 Windows 环境)
windows·git
阿幸软件杂货间5 小时前
Windows 10 2016 长期服务版
windows·系统·win10
持之以恒的天秤6 小时前
Redis—哨兵模式
redis·缓存
高山莫衣6 小时前
Docker Desktop导致存储空间不足时的解决方案
docker·容器·eureka
鹏大师运维6 小时前
在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
linux·运维·docker·容器·麒麟·统信uos·中科方德
lovely_nn6 小时前
docker 介绍
docker·k8s