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

centos7 安装redis详细教程 centos7安装redis集群_插槽

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

修改内容如下:

centos7 安装redis详细教程 centos7安装redis集群_linux_02


centos7 安装redis详细教程 centos7安装redis集群_插槽_03


centos7 安装redis详细教程 centos7安装redis集群_redis_04


centos7 安装redis详细教程 centos7安装redis集群_redis_05


centos7 安装redis详细教程 centos7安装redis集群_linux_06


centos7 安装redis详细教程 centos7安装redis集群_插槽_07


centos7 安装redis详细教程 centos7安装redis集群_linux_08


centos7 安装redis详细教程 centos7安装redis集群_centos7 安装redis详细教程_09


centos7 安装redis详细教程 centos7安装redis集群_结点_10


centos7 安装redis详细教程 centos7安装redis集群_centos7 安装redis详细教程_11


centos7 安装redis详细教程 centos7安装redis集群_linux_12


centos7 安装redis详细教程 centos7安装redis集群_redis_13


centos7 安装redis详细教程 centos7安装redis集群_结点_14


centos7 安装redis详细教程 centos7安装redis集群_redis_15


centos7 安装redis详细教程 centos7安装redis集群_redis_16


centos7 安装redis详细教程 centos7安装redis集群_结点_17

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

centos7 安装redis详细教程 centos7安装redis集群_结点_18

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

centos7 安装redis详细教程 centos7安装redis集群_linux_19

注:参数解释

bin/redis-cli --help

-a是指定密码

因为我们一开始的配置文件中指定了密码,所以这里需要加上-a luanbu,不然操作不了。

centos7 安装redis详细教程 centos7安装redis集群_centos7 安装redis详细教程_20


–cluster

centos7 安装redis详细教程 centos7安装redis集群_插槽_21

bin/redis-cli --cluster help

cluster有子命令,可以通过上面命令查看

centos7 安装redis详细教程 centos7安装redis集群_centos7 安装redis详细教程_22


–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

centos7 安装redis详细教程 centos7安装redis集群_centos7 安装redis详细教程_23


centos7 安装redis详细教程 centos7安装redis集群_linux_24


注: -c是以集群模式启动客户端。默认是单机模式去连接redis服务

切记勿漏 -c 和-a参数。

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

centos7 安装redis详细教程 centos7安装redis集群_结点_25


centos7 安装redis详细教程 centos7安装redis集群_redis_26


centos7 安装redis详细教程 centos7安装redis集群_结点_27

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

8002是主结点,8004是8002的从结点。

centos7 安装redis详细教程 centos7安装redis集群_redis_28

这里模拟8002宕机,观察8004是否会自动升级为master结点。

centos7 安装redis详细教程 centos7安装redis集群_centos7 安装redis详细教程_29


结论:但master结点宕机后,slave结点会升级成master结点

14、模拟假设情况

centos7 安装redis详细教程 centos7安装redis集群_linux_30


centos7 安装redis详细教程 centos7安装redis集群_插槽_31


centos7 安装redis详细教程 centos7安装redis集群_linux_32


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

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

centos7 安装redis详细教程 centos7安装redis集群_redis_33