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 创建集群 |
第八步 | 验证集群是否正常工作 |
第九步 | 清理资源 |