Centos7搭建Redis集群(干货!)

Redis集群搭建

搭建3组,每组一主一从。一共启动6个redis服务。
6台redis服务的端口从 8001 - 8006

前提你已经安装好了redis

1、创建集群目录

mkdir /usr/local/mysoftware/redis/cluster -p

2、把安装redis后产生的bin目录拷贝放到 /usr/local/mysoftware/redis下

cp 你redis生成后的bin目录   /usr/local/mysoftware/redis -r

在这里插入图片描述

3、切换到cluser 目录下

cd /usr/local/mysoftware/redis/cluster

4、在cluster目录下创建每个Redis服务对应的文件夹

mkdir 8001
mkdir 8002
mkdir 8003
mkdir 8003
mkdir 8004
mkdir 8005
mkdir 8006

5、把redis.conf文件拷贝到cluser目录下

cp  你redis.conf    ./

6、修改redis.conf文件

vim redis.conf

修改内容如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、把redis.conf 拷贝到8001-8006目录下

cp redis.conf ./8001/
cp redis.conf ./8002/
cp redis.conf ./8003/
cp redis.conf ./8004/
cp redis.conf ./8005/
cp redis.conf ./8006/

8、修改8002-8006文件夹下的redis.conf中的8001 改成自己对应的的800x

以8002为例

vim 8002/redis.conf

然后把所有出现的8001 改成8002,完成之后再保存退出。
同理修改8003、8004、8005、8006下的redis.conf文件

9、编写启动脚本

vim start.sh

内容如下:

#!/bin/bash
 /usr/local/mysoftwares/redis/bin/redis-server  /usr/local/mysoftwares/redis/cluster/8001/redis.conf
 /usr/local/mysoftwares/redis/bin/redis-server  /usr/local/mysoftwares/redis/cluster/8002/redis.conf
 /usr/local/mysoftwares/redis/bin/redis-server  /usr/local/mysoftwares/redis/cluster/8003/redis.conf
 /usr/local/mysoftwares/redis/bin/redis-server  /usr/local/mysoftwares/redis/cluster/8004/redis.conf
 /usr/local/mysoftwares/redis/bin/redis-server  /usr/local/mysoftwares/redis/cluster/8005/redis.conf
 /usr/local/mysoftwares/redis/bin/redis-server  /usr/local/mysoftwares/redis/cluster/8006/redis.conf

10、执行启动脚本

bash start.sh

查看进程

ps -ef | grep redis

在这里插入图片描述

11、创建集群

你启动了6个redis服务,此时的每个redis是没有关联的,所以这里需要指定。

cd ../		#先切到到上一级目录

:如果需要在外部服务器通过代码访问redis集群,那么需要将下面命令的127.0.0.1 改成 服务器实际IP地址

./bin/redis-cli -a luanbu --cluster create 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 127.0.0.1:8005 127.0.0.1:8006 --cluster-replicas 1

在这里插入图片描述

注:参数解释

bin/redis-cli --help

-a是指定密码
因为我们一开始的配置文件中指定了密码,所以这里需要加上-a luanbu,不然操作不了。 在这里插入图片描述
–cluster
在这里插入图片描述

bin/redis-cli --cluster help

cluster有子命令,可以通过上面命令查看
在这里插入图片描述
–cluster-replicas 1
最后面的数字是指每个master带有多少个slave从结点。
这里最后的数是1,那就是每个master结点有一个slave从结点。如果最后的数字是2,那么代表每个master对应2个slave从结点。
这里就是建立关联的过程:我们一共是6个redis服务,然后我们配置 每个master对应1个从结点,那么 6 / 2 = 3,那么系统就会为我们分配3组,每组是一个master和一个slave。

12、连接测试

通过下面命令连接集群中的其中一个客户端。

./bin/redis-cli -c  -p 8001 -a luanbu

在这里插入图片描述
在这里插入图片描述
注: -c是以集群模式启动客户端。默认是单机模式去连接redis服务
切记勿漏 -c 和-a参数。
redis集群一共有16384个插槽,我们一共是3组,每组对应5000多个连续插槽,每组在其插槽范围内操作。当我们进行set k v的时候,系统会根据k计算出对应的插槽号,如果插槽号在我们当前的8003中,那么一切ok,但是如果插槽号不在8003所管范围中,那么就会切换到其它例如8002或8001上去处理,如果你不使用-c,那么如果计算出的key插槽号不在我们当前8003所管理的插槽号范围时,且因为我们是非集群模式启动客户端,即此时是单机模式的客户端,此时我们就不能切换到对应的8003或8001上,即此时就会写操作失败。

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

13、模拟宕机,测试是否自动实现故障转移

8002是主结点,8004是8002的从结点。
在这里插入图片描述

这里模拟8002宕机,观察8004是否会自动升级为master结点。
在这里插入图片描述
结论:但master结点宕机后,slave结点会升级成master结点

14、模拟假设情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结论:如果出现假死情况,原本的master 再次活过来后会变成slave。三十年河东、三十年河西,以前的随从变成现在自己的主人

15、查看产生的数据文件。

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值