Redis哨兵、复制、集群的设计原理及区别

Redis服务器要想保证高可靠,保证备份的机器是原始服务器的完整备份,就需要使用到哨兵和复制。

哨兵(Sentinel):可以管理多个Redis服务器,提供了监控、提醒以及自动的故障转移功能。

复制(Replication):负责让一个redis服务器可以配备多个备份的服务器

redis正式利用这两个功能来保证Redis的高可用。

哨兵(Sentinel)

哨兵是redis集群架构中非常重要的一个组件,哨兵的出现主要是解决主从复制出现故障需要人为干预的问题。

哨兵的主要功能

1.集群监控:负责监控集群master和slave进程是否正常工作

2.消息通知:如果某个Redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员

3故障转移:如果master node挂了,会自动转移到slave node上

4配置中心:如果故障转移发生了,通知client客户端新的master地址

哨兵的高可用:当主节点出现故障时,由Redis Sentinel自动完成故障发现和转移,并通知应用方,实现高可用。

        

哨兵机制建立了多个哨兵节点进程,共同监控数据节点的运行状况

每隔1s每隔哨兵会向整个集群:Master主服务器、各个Slave从服务器、其他Sentinel进程,发送一次ping命令做心跳测试。这个就是稍定判断节点是否正常的重要依据。

主观下线:一个哨兵节点判定主节点down是主观下线

客观下线:只有半数哨兵节点都主观判断主节点down掉,此时多个稍定节点交换主观判定结果,才会判定主节点客观下线。

原理:基本上那个哨兵节点最先判断主节点客观下线,就会在各个哨兵节点中发起投票机制Raft算法(选举算法),最终被投为领导者的哨兵节点完成主从自动化切换过程。

Redis复制(replication)

redis为了解决单点数据库问题,会把数据复制多个副本部署到其他节点上,通过复制,实现Redis的高可用性,实现对数据的冗余备份,保证数据和服务的高度可靠性。

1数据复制原理(执行步奏)

1.从redis服务向主redis服务发送sync数据同步命令

2.主redis服务接受同步命令后,会保存快照,创建RDB文件

3.主redis执行完保存快照后,会向从服务发送RDB文件,从服务会接受并载入RDB文件

4.主redis服务将缓存区的所有写命令发送给从服务器执行

5.处理完后,以后主redis服务每执行一个写命令,都会将被执行的命令发送给从服务执行

Redis2.8后,主从断开重连后会根据断开之前的最新的命令偏移量进行增量复制

 Redis主从复制、哨兵、集群这三个有什么区别

1主从模式:读写分离、备份,一个Master可以有多个Slaves

2哨兵sentinel:监控、自动转移。哨兵发现主服务器挂了,就会从slaves中选举一个作为Master

3集群:为了解决单机Redis容量有限问题,将数据按照一定的规则分配到多台机器,内存/QPS不受限与单机,可受益于分布式集群的高扩展性。哨兵作用于高可用,集群提高并发量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值