使用docker在3台服务器上搭建redis 6.x三主三从集群

发布于:2025-06-10 ⋅ 阅读:(17) ⋅ 点赞:(0)

注意:每台服务器搭建一主一从节点

一、环境及版本说明

如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装:

        1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看

        2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看

说明:假设每台服务器已经安装好了Docker软件,并且redis集群的安装目录在/home/redis下面

环境及版本
操作系统 IP 操作系统版本 docker版本 redis版本
Linux 192.168.100.101 CentOS7.6(1810) 18.09.9 6.0.8
Linux 192.168.100.102 CentOS7.6(1810) 18.09.9 6.0.8
Linux 192.168.100.103 CentOS7.6(1810) 18.09.9 6.0.8

二、集群模式的优缺点

优点‌:

  1. 数据分片‌:支持横向扩展,突破单机内存限制
  2. 高可用性‌:节点故障自动迁移数据
  3. 负载均衡‌:数据均匀分布,避免单点压力

缺点‌:

  1. 部署复杂‌:需规划分片策略和节点管理
  2. 事务限制‌:跨槽命令不支持
  3. 运维成本高‌:需监控多个分片

适用场景‌:

  • 大数据量、高并发场景(如社交平台热点数据)
  • 需要线性扩展能力的业务

三、配置文件

说明:三台服务器redis集群的配置文件都是下面这个redis.conf文件

1. 到工作目录下面新建redis.conf文件并添加以下内容:

#到工作目录下面
cd /home/redis

#创建redis.conf文件
vim redis.conf

 2. redis.conf中被添加的内容如下: 

cluster-enabled yes  #开启集群配置
cluster-config-file nodes.conf  #设置集群配置文件名称为nodes.conf
cluster-node-timeout 5000  #集群连接超时时间
requirepass 123456    #当前节点的密码,为了防止混淆,建议两个密码设置成一样
masterauth 123456     #主节点的密码,为了防止混淆,建议两个密码设置成一样

四、启动脚本

说明:三台服务器redis集群的启动脚本都是下面这个create_redis_cluster.sh文件,并且需要在三台服务器上均执行一次该脚本

1. 首先创建redis的数据目录和启动文件

#切换到redis的工作目录下
cd /home/redis

#创建集群的数据目录
mkdir data

#进入数据目录
cd data

#创建端口号是6379的主节点的数据目录
mkdir redis6379

#创建端口号是6380的从节点的数据目录
mkdir redis6380

#创建redis集群的docker容器启动脚本
vim create_redis_cluster.sh

 2. create_redis_cluster.sh文件中被添加的内容如下:

#这是启动主节点的脚本
docker run -d --restart=always --name redis6379 \
-p 6379:6379 -p 16379:16379  --privileged=true \
-v /home/redis/redis.conf:/redis.conf \
-v /home/redis/data/redis6379:/data \
redis:6.0.8 redis-server /redis.conf

#这是启动从节点的脚本
docker run -d --restart=always --name redis6380 \
-p 6380:6379 -p 16380:16379 --privileged=true \
-v /home/redis/redis.conf:/redis.conf \
-v /home/redis/data/redis6380:/data \
redis:6.0.8 redis-server /redis.conf

3. 执行create_redis_cluster.sh 

提示:三台服务器均需执行如下命令

#在该文件所在目录,执行如下命令
sh create_redis_cluster.sh

4. 执行后会创建2个redis容器,输入docker ps 查看容器状态,若出现下图情形,则表示正常。 

5. 进入任意一台服务器的6379端口的redis主节点容器中

当前以我上图中容器名称为:redis6379 的容器为例:

#进入容器中
docker exec -it redis6379 /bin/bash

#在容器中任意目录下输入创建集群的命令
redis-cli --cluster create 192.168.100.101:6379 192.168.100.101:6380 192.168.100.102:6379 192.168.100.102:6380 192.168.100.103:6379 192.168.100.103:6380 --cluster-replicas 1 -a 123456

命令解释: -a 123456 这里的123456就是集群中各个节点的密码

执行后,看到如下所示表示集群创建完成。

五、测试

到任意服务器的任意节点上,进入容器中并且输入如下指令:

#登录到集群环境中,会提示已经重定向到主节点上 123456  是集群的密码
redis-cli -c -p 6379 -a 123456

#查看集群信息
cluster info

执行上述命令后,将会如下图所示:

至此就大功告成了~~