redis 高可用方案

1.主从配制模式+哨兵监控

1.1、Redis主从模式配置

Redis的主从模式配置是非常简单的,要求两个节点,如下

主节点(master):192.168.0.16:6379

从节点(slave):192.168.0.7:6379

注意:在生产上这样的配置,没有意义,达不到双活,因为如果无论master节点还是slave节点挂了,我们都要手动启动来让他继续恢复工作。如果想要达到自动恢复,比如master挂掉了,在slave节点中选一个节点自动更换成master,redis在2.4之后出现了sentinel(哨兵监控),下面来看下(1.2)哨兵监控的机制:

1.2、哨兵监控(Sentinel)

Sentinel是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进行下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。

基本原理是:心跳机制+投票裁决

(1)监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。

(2)提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。

(3)自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器

1.3、哨兵机制的原理图

当集群正常时

img

当一个节点发生故障时,哨兵监控系统会从新选择一个新节点,做为主节点,如图

img

1.4、哨兵监控的服务器要求

(1)、redis主要配置至少要一主一从,从可以多个,但是主只能一个

(2)、哨兵监控系统,可以一个,也可以多个

2.分布式方案

2.1、redis分布式配置

一般redis分布式要求三主三从,分布式与哨兵监控的差别在于,有多个主节点,每个主节点都需要从节点。最少要三个节点存活

主节点(master1):192.168.0.16:6379

主节点(master2):192.168.0.16:6378

主节点(master3):192.168.0.16:6377

从节点(slave1):192.168.0.7:6379

从节点(slave2):192.168.0.7:6378

从节点(slave3):192.168.0.7:6377

2.2、分布式的原理图

当两台虚拟机正常时

img

当一有台虚拟机发生故障,如图

img

2.3、服务器要求

至少两台虚拟机,每台三个节点。

分享