
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发等达内课程,而本文我们就简单来了解一下,缓存应用模式都有哪些类型。
主从(master-replica)
前面说过单机节点存在诸多问题,很少在生产环境上使用。在实际项目中,有些项目的存储容量要求其实并不是特别的高(比如常规的16G或者32G就已经足够使用),但是需要保证数据的可靠、并且支持大并发量请求,这种情况下,就可以选择主从部署的方式。
主从模式按照读写分离的策略来提升整体的请求处理能力:
主节点(Master)同时对外提供读和写操作
从节点(Slave)通过replicate同步的方式,从主节点复制数据,保持自身数据与主节点一致
从节点只能对外提供读操作
当然,对于读多写少类的操作,为了提升整体读请求的处理能力,可以采用一主多从的方式:
所有的从节点都从主节点进行数据同步,这样会导致主节点的同步处理压力过大而成为瓶颈。为了解决这个问题,redis还支持了从slave节点分发的能力:
Redis的主从模式重点在于解决整体的承压能力,利用从节点分担读取操作的压力。但是其在容错恢复等可靠性层面欠缺明显,不具备自动的故障转移与恢复能力:
如果slave从节点宕机,整个redis依旧可以正常提供服务,待slave节点重新启动后,可以恢复从master节点的数据同步、然后继续提供服务。
如果master主节点宕机,则redis功能受损,无法继续提供写服务,直到手动修复master节点方可恢复。
当然,master节点故障后,也可以手动将其中一个从节点切换为新的master节点来恢复故障。而原先的master节点恢复后,需要手动将其降级为slave节点,对外提供只读服务。
实际使用的时候,手动故障恢复的时效无法得到保证,为了支持自动的故障转移与恢复能力,Redis在主从模式的基础上进行优化增强,提供了哨兵(Sentinel)架构模式。
哨兵(sentinel)
哨兵模式是在现代自动化系统里面常见的一种模式。比如特斯拉汽车就配置了哨兵模式,当车辆停车锁定并启动哨兵模式时,会通过车辆四周的摄像头持续的监控车辆四周的环境,如果发现异常则启动报警系统。
同样地,在软件架构领域,也可以通过设定一些主进程之外的辅助进程,充当“哨兵”的角色时刻监控着主服务,一旦主服务出现异常则进行报警或者自动介入辅助故障转移,以大限度的保证系统功能的持续性。
哨兵可以准实时的监控着组网内所有的节点的状态信息,如果判定master节点宕机之后,所有的sentinel节点会一起推选出一个新的master节点。由于sentinel哨兵节点需要承担着master节点推选的责任,所以实施的时候要去sentinel节点个数必须为奇数(比如3个、5个等),这是为了保证投票的时候不会出现平局的情况。
在哨兵模式下:
如果Redis的master节点宕机之后,Sentinel监控到之后,需要先判定确认master节点已经宕机,然后会从剩余存活的slave节点中投票选出一个新的节点作为master节点。
Sentinel监控到此前宕机的master节点重新恢复之后,会将其作为slave节点,挂到现有的新的master节点下面。
哨兵模式有效的解决了高可用的问题,保证了主节点的自动切换操作,进一步保障了Redis缓存节点的可靠性。但是,不管是哨兵模式还是主从模式,其增加的多台部署机器,都仅仅是扩展其承压能力与可靠性,并没有解决分布式场景下对于集中缓存容量的焦虑——只能适用于数据量有限的场景。
成年人的世界总是贪婪的。如果我们既想要保证Redis的可靠性与承压性,还想要突破容量上的限制,就需要Redis的集群模式登场了。
集群(cluster)
Redis提供了去中心化的集群部署模式,集群内所有Redis节点之间两两连接,而很多的客户端工具会根据key将请求分发到对应的分片下的某一个节点上进行处理。
一个的Redis集群部署场景如下图所示:
在Redis集群里面,又会划分出分区的概念,一个集群中可有多个分区。分区有几个特点:
同一个分区内的Redis节点之间的数据完全一样,多个节点保证了数据有多份副本冗余保存,且可以提供高可用保障。
不同分片之间的数据不相同。
通过水平增加多个分片的方式,可以实现整体集群的容量的扩展。
按照Cluster模式进行部署的时候,要求少需要部署6个Redis节点(3个分片,每个分片中1主1从),其中集群中每个分片的master节点负责对外提供读写操作,slave节点则作为故障转移使用(master出现故障的时候充当新的master)、对外提供只读请求处理。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。