当前位置:   article > 正文

【Redis Cluster 集群部署详细步骤】_redis多服务器集群搭建

redis多服务器集群搭建

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

1、准备环境

本地服务器三台:

192.168.75.100
192.168.75.101
192.168.75.102
  • 1
  • 2
  • 3

2、上传tar包,解压安装

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

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

在这里插入图片描述

3、安装redis

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

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

在这里插入图片描述

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

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

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

4、修改redis.conf 开启集群

vi redis.conf
  • 1
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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在其他两台服务器上安装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/
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

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

bin/redis-server redis.conf
  • 1

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

ps -ef|grep redis
  • 1

在这里插入图片描述

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
  • 1

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

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

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

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

在这里插入图片描述

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

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

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

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

//进入编辑
vi redis.conf

//1.进入后可以搜索一下
/6310
//2.然后 i 编辑
//3.esc /6310 再搜索
//4.直到搜不到后保存退出
:wq
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

//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/
  • 1
  • 2
  • 3
  • 4

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

9、创建从节点加入集群

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

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

在这里插入图片描述
复制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
  • 1
  • 2
  • 3

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

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

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

0、查看集群里没有数据

每个master都可以看一下。

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

//连接redis客户端执行
keys *
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

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

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

2、关闭所有redis节点

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

//关闭三台服务上的
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

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

//复制命令
cp [资源文件[ [目标位置]

//这里找了一个其他服务上的rdb文件,直接上传到这个位置的

  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

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

在这里插入图片描述

4、启动该redis

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

在这里插入图片描述

在这里插入图片描述

5、查询是否已加载

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

  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

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

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

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

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

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

在这里插入图片描述

在这里插入图片描述

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

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

//3.启动所有redis
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

9、卡槽还原

//跟上面合槽同理
  • 1

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

分槽实时查看

在这里插入图片描述

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/737062
推荐阅读
相关标签
  

闽ICP备14008679号