注意:每台服务器搭建一主一从节点
一、环境及版本说明
如果服务器已经安装了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 |
二、集群模式的优缺点
优点:
- 数据分片:支持横向扩展,突破单机内存限制
- 高可用性:节点故障自动迁移数据
- 负载均衡:数据均匀分布,避免单点压力
缺点:
- 部署复杂:需规划分片策略和节点管理
- 事务限制:跨槽命令不支持
- 运维成本高:需监控多个分片
适用场景:
- 大数据量、高并发场景(如社交平台热点数据)
- 需要线性扩展能力的业务
三、配置文件
说明:三台服务器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
执行上述命令后,将会如下图所示:
至此就大功告成了~~