Redis哨兵

介绍

Redis主从只能满足备份的需求!如果Master宕机的话,还得手动配置Slave才能够使用!并不会自动的切换到Slave继续工作!中间耗时费力!无法实现真正的高可用!

 

哨兵是官方提供的高可用方案!Redis哨兵是一个独立的进程,在运行过程当中会监控所有redis节点的工作状态!当master宕机后会将一台slave升级为master,同时会通知其他的slave修改配置文件,修改master的IP为新的master!哨兵会保证我们的redis集群中一直是有一台可用的master在可以使用

我们为了更有保障的运行哨兵,我们一般会配置多个哨兵!

 

当多个哨兵在同时工作时,master的下线状态有两个:主观下线和客观下线

当master出现故障后,如果只是一个哨兵发现了不可用,,此时这种现象被称之为:主观下线,在主观下线的状态下,并不会发生故障转移!当其他的哨兵也发现master不可用后,开始发起投票,当票数达到预先设置的值后,那么就会开始执行failover操作,开始故障转移!升级一台slave为master,同时让其他的slave修改配置,需改master的IP为新的Master。这种现象我们成为:客观下线

 

部署哨兵集群

整理思路

做哨兵集群,我们至少需要3台才能有完整的效果!

准备3台虚拟机,下图如下

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件

 

 

 

我们将Redis配置为一主两从模式,同时在每个redis-server再上安装哨兵,哨兵监控每个redis的状态

 

IP规划如下:

Redis Master:192.168.189.161

Redis Slave1192.168.189.162

Redis Slave2192.168.189.163

配置redis一主两从集群

3台主机上做如下操作:

安装redis

上传redis安装包到服务器

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis_02

 

 

安装依赖工具gcc

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis哨兵模式升级版本linux_03

 

 

解压安装包,安装redis

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis哨兵模式升级版本linux_04

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis_05

 

 

 

配置redis

配置master

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_redis_06

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_redis_07

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_08

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_09

 

 

 

 

启动redis master

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_redis_10

 

 

配置两台slave,配置如下

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_11

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis_12

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_redis_13

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis_14

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_15

 

 

 




测试主从

登录master

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis哨兵模式升级版本linux_16

 

 

执行:info replication  查看主从复制的信息

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_17

 

 

创建一个键值对儿

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_18

 

 

在从上获取,测试是否同步

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_19

 

 

配置哨兵

我们在3台redis-server虚拟机上配置3个哨兵

3台虚拟机上同时操作

修改配置文件

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_20

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_21

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_配置文件_22

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis_23

 

 




将修改好的配置文件发送到另外两台主机上

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis哨兵模式升级版本linux_24

 

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_redis_25

 

 


启动所有主机的哨兵

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_redis_26

 

 


查看日志可以看到哨兵之间互相都可发现,并且监控起了master


 

Redis哨兵模式升级版本linux redis 哨兵模式启动_redis_27

 

 

测试停止master

停止redis-server

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis_28

 

 


查看日志

 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis哨兵模式升级版本linux_29

 

 


登陆162查看信息,验证到162已经被升级为master,同时拥有一个slave


 

Redis哨兵模式升级版本linux redis 哨兵模式启动_Redis哨兵模式升级版本linux_30

 

 

至此哨兵配置完毕