说到Redis服务器的高可用,如何保证备机是原服务器的完整备份?这是需要哨兵和复制的地方。哨兵(Sentinel):可以管理多个Redis服务器,它提供监控、提醒和自动故障转移功能。Replication:是负责让一个Redis服务器配备多个备份的服务器。Redis就是利用这两个功能来保证Redis的高可用。java训练中的文件哨兵(sentinal),哨兵是Redis集群架构中非常重要的一个组件。哨兵的出现主要解决了主从复制失败时的人为干预问题。一、Redissentry的主要功能(1)集群监控:负责监控Redis主从进程是否正常工作(2)消息通知:如果某个Redis实例出现故障,sentinel负责发送消息作为告警通知给管理员(3)Failover:如果master节点挂了,会自动转移到slave节点(4)配置中心:如果发生failover,通知客户端新的master地址2.RedisSentinel的高可用原理:当master节点出现故障时,RedisSentinel自动完成故障发现和转移,并通知应用端实现高可用。文件哨兵机制建立多个哨兵节点(进程)共同监控数据节点的运行状态。同时哨兵节点之间也相互通信,交换主从节点的监控状态。每隔1秒,每个Sentinel都会向整个集群发送一个ping命令:Master主服务器+Slave从服务器+其他Sentinel(哨兵)进程进行一次心跳检测。这是哨兵判断节点是否正常的重要依据,涉及到两个新的概念:主观下线和客观下线。主观下线:哨兵节点判断主节点宕机,属于主观下线。2、客观下线:只有一半的sentinel节点主观判断主节点宕机。此时多个哨兵节点交换主观判断结果,客观上会判断主节点下线。3.原理:基本上是哪个sentinel节点先判断master节点客观下线,就会在每个sentinel节点发起投票机制Raft算法(选举算法),最终被投票为leader的sentinel节点完成master-slave自动化切换的过程。Redis复制(Replication)为了解决单点数据库问题,Redis会复制多份数据并部署到其他节点上。通过复制,Redis可以实现高可用,数据的冗余备份,数据和服务的高可靠性。性别。一、数据复制原理(执行步骤)文件①从数据库向master数据库发送sync(数据同步)命令。②主数据库收到同步命令后,会保存快照并创建RDB文件。③主库完成快照保存后,将RDB文件发送给从库,从库接收并加载该文件。④主库将缓冲区中的所有写命令发送给从服务器执行。⑤以上处理完成后,主库每执行一次写命令,就会将执行的写命令发送给从库。注意:Redis2.8以后,主从断开重连后,会根据断开前的最新命令offset进行增量复制。fileRedis主从复制、哨兵和集群有什么区别?1.主从模式:读写分离,备份,一个Master可以有多个Slave。2.Sentinel:监控,自动转移,sentinel发现master服务器宕机后,会重新从slave中选举一个master服务器。3、集群:为了解决单机Redis容量有限的问题,将数据按照一定的规则分布到多台机器上,内存/QPS不局限于单机,可以受益于高分布式集群的可扩展性。
