【Redis Cluster 集群部署详细步骤】

avatar
作者
猴君
阅读量:0

一、Redis Cluster 集群部署详细步骤

1、准备环境

本地服务器三台:

192.168.75.100 192.168.75.101 192.168.75.102 

2、上传tar包,解压安装

在这里插入图片描述
三台服务器同样的操作。也可以使用scp命令直接传tar包到其他两台服务器

scp -r redis-5.0.5.tar.gz root@192.168.75.102:/root/redis_cluster/ 

在这里插入图片描述

3、安装redis

每台服务器安装两个redis,先处理第一台服务器的第一个redis

  1. 解压
tar -zxvf redis-5.0.5.tar.gz 

在这里插入图片描述

  1. 安装
//进入解压的目录 cd redis-5.0.5 //指定安装位置 make PREFIX=/root/redis_cluster/redis1-6310 install 

安装完成
在这里插入图片描述
返回上一级目录,可以看到
在这里插入图片描述

进入解压的文件目录复制一个redis.conf到安装的目录
在这里插入图片描述

4、修改redis.conf 开启集群

vi redis.conf 
bind 0.0.0.0 port 6310 protected-mode no daemonize yes dbfilename dump-6310.rdb pidfile /var/run/redis_6310.pid masterauth xyy,.123 requirepass xyy,.123 cluster-enabled yes cluster-config-file nodes-6310.conf cluster-node-timeout 15000 cluster-require-full-coverage no  

在其他两台服务器上安装redis,安装过程同上面的 安装redis,执行完install 那一步后即可,等会再从第一台服务器传redis.conf文件
服务器:192.168.75.101
在这里插入图片描述
服务器:192.168.75.102
在这里插入图片描述

5、复制192.168.175.100的 redis.conf 文件到101、102服务器上

//101 scp -r redis.conf root@192.168.75.101:/root/redis_cluster/redis1-6310/ //102 scp -r redis.conf root@192.168.75.102:/root/redis_cluster/redis1-6310/ 

在这里插入图片描述

6、分别启动三台服务器的redis

bin/redis-server redis.conf 

在这里插入图片描述
查看是否启动

ps -ef|grep redis 

在这里插入图片描述

7、创建master集群,三主

进入哪个服务器的目录下都行,只要是redis-cli

bin/redis-cli --cluster create --cluster-replicas 0 -a xyy,.123 192.168.75.100:6310 192.168.75.101:6310 192.168.75.102:6310 

a.报错,防火墙没关
关闭三台服务的防火墙或者放开6310端口

//查防火墙状态 systemctl status firewalld //永久开放端口 firewall-cmd --add-port=6310/tcp --permanent //关闭防火墙 systemctl stop firewalld 

在这里插入图片描述
b.再次执行集群命令
在这里插入图片描述
c.连接客户端查看

//连接集群,那台服务器都可以 bin/redis-cli -c -p 6310 //输入redis密码 auth xyy,.123 //查看集群节点 cluster nodes 

在这里插入图片描述

8、安装redis配置从节点,基本跟上面差不多,在每台服务器各自再安装一个redis

安装
在这里插入图片描述
在192.168.75.100服务器上操作,复制redis.conf文件到6311里

cp redis1-6310/redis.conf /root/redis_cluster/redis2-6311/ 

在这里插入图片描述
进入redis.conf 把所有的6310改成6311即可,其他的在6310里都已经修改过了,保持一致

//进入编辑 vi redis.conf  //1.进入后可以搜索一下 /6310 //2.然后 i 编辑 //3.esc /6310 再搜索 //4.直到搜不到后保存退出 :wq 

在这里插入图片描述
在这里插入图片描述
复制到其他两台服务器

//101 scp -r redis.conf root@192.168.75.101:/root/redis_cluster/redis2-6311/ //102 scp -r redis.conf root@192.168.75.102:/root/redis_cluster/redis2-6311/ 

直接启动这个redis,每台服务器是这样的。此时6311并没有加入集群
在这里插入图片描述

9、创建从节点加入集群

连接客户端,查看主节点的id

//不管是哪台服务器,都可以,主要是用 redis-cli bin/redis-cli -c -p 6310 //查看主节点id cluster nodes 

在这里插入图片描述
复制192.168.75.100的id ,让从节点加入集群

//--cluster-master-id 主节点id // -a redis密码 bin/redis-cli --cluster add-node 192.168.75.100:6311 192.168.75.100:6310 --cluster-slave --cluster-master-id c7a842d10a9ead17ec2a3f0f0ff4483ad55e4ba6 -a xyy,.123 

在这里插入图片描述
同理,分别执行其他两台服务器的从节点,在当前服务器即可,修改ip和masterid就行
在这里插入图片描述
在这里插入图片描述
再次查看,三主三从
在这里插入图片描述

二、单点redis数据迁移至redis cluster集群

【RDB】以上集群安装时,集群并未开启aof,接着上面的去做迁移

0、查看集群里没有数据

每个master都可以看一下。

解释一下为啥不同的服务器上的主从互相指向了 新建集群是本服务器的从指向的本服器务的主,可能因为重启测试过集群的分槽合槽,在合槽后重启,所有的从节点都指向了一个主,后续再分槽,从节点自动指向刚刚分槽的redis,所以主从的关系跨服务指向了,确保一主一从即可。  //连接redis客户端执行 keys * 

在这里插入图片描述

1、把三主的卡槽集中到一个上面

这里集中到101的master上

//1.连接任意一台服务的redis客户端,进行合槽.这里是在100上连接的 redis1-6310/bin/redis-cli --cluster reshard 192.168.75.100:6310 -a xyy,.123 //2.可以看到集群信息,5461是要移动的卡槽数量 5461 //3.接收者。哪个master来接收这5461个槽位,就复制哪个的id。这里合到101上的master //4.发送者。哪个master来迁出自己的槽位,就复制哪个的id。这里迁出102上6310的master //5.回车确定执行 done //6.执行后再次确认 yes  

在这里插入图片描述
在这里插入图片描述

同理迁出102上6311的master的槽位,到101的master,不在截图

在这里插入图片描述
查看
在这里插入图片描述

2、关闭所有redis节点

//1.查看进程 ps -ef|grep redis //2.这里杀死进程。也可以连接redis客户端,执行shutdown关闭 kill -9 进程号  //关闭三台服务上的 

在这里插入图片描述
在这里插入图片描述

3、复制单点redis的rdb文件复制到这个拥有所有卡槽的redis下,并把命名改成该redis下的redis.conf里的一样

//复制命令 cp [资源文件[ [目标位置]  //这里找了一个其他服务上的rdb文件,直接上传到这个位置的  

在这里插入图片描述

//重命名。该名字是拥有所有卡槽的redis的redis.conf里的 dbfilename dump-6310.rdb mv dump.rdb dump-6310.rdb 

在这里插入图片描述

4、启动该redis

//切记此时redis并未开启aof 也就是appendonly no //0.修改redis.conf  appendfilename "appendonly-6310.aof" //1.启动 redis1-6310/bin/redis-server redis1-6310/redis.conf 

在这里插入图片描述

在这里插入图片描述

5、查询是否已加载

//1.连接客户端 redis1-6310/bin/redis-cli -c -p 6310 -a xyy,.123 //查看 keys *  

在这里插入图片描述

6、执行命令,保存aof文件

//连接客户端,手动命令保存aof文件 bgrewriteaof 

在这里插入图片描述
在这里插入图片描述

7、关闭该redis,开启aof,再启动

//1.关闭 shutdown //2.修改redis.conf appendonly yes //3.启动 redis1-6310/bin/redis-server redis1-6310/redis.conf //4.连接并查看是否有数据 

在这里插入图片描述

在这里插入图片描述

8、同样开启所有节点的aof并启动

//1.修改其他五个redis的redis.conf appendonly yes //2.这个命名这里也区分开来,每台服务器有6310和6311的aof appendfilename "appendonly-6310.aof"  //3.启动所有redis 

9、卡槽还原

//跟上面合槽同理 

在这里插入图片描述
在这里插入图片描述

分槽实时查看

在这里插入图片描述

10、查看,会发现还原后的俩redis主从 也会分到数据

//连接任意两个从节点  192.168.75.100:6310和192.168.75.101:6311  可以看到分槽后也自动分了数据 

在这里插入图片描述
在这里插入图片描述

未完待续。。。。
1.测试容错

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!