美文网首页
2020-09-23

2020-09-23

作者: 蓬莱辰 | 来源:发表于2020-09-23 08:50 被阅读0次

这篇文章,我们来看Redis是如何实现故障自动恢复的,它的实现正是要基于之前所讲的数据持久化和数据多副本而做的。

Redis作为非常火热的内存数据库,其除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis也提供了完善的故障恢复机制:哨兵。

下面就来具体来看看Redis的故障恢复是如何做的,以及其中的原理。

部署模式
Redis在部署时,可以采用多种方式部署,每种部署方式对应不同的可用级别。

单节点部署:只有一个节点提供服务,读写均在此节点,此节点宕机则数据全部丢失,直接影响业务。

master-slave方式部署:两个节点组成master-slave模式,在master上写入,slave上读取,读写分离提高访问性能,master宕机后,需要手动把slave提升为master,业务影响程度取决于手动提升master的延迟。

master-slave+哨兵方式部署:master-slave与上述相同,不同的是增加一组哨兵节点,用于实时检查master的健康状态,在master宕机后自动提升slave为新的master,最大程度降低不可用的时间,对业务影响时间较短。

从上面几种部署模式可以看出,提高Redis可用性的关键是:多副本部署 + 自动故障恢复,而多副本正是依赖主从复制。

高可用做法
Redis原生提供master-slave数据复制,保证slave永远与master数据保持一致。

在master发生问题时,我们需要把slave提升为master,继续提供服务。而这个提升新master的操作,如果是人工处理,必然无法保证及时性,所以Redis提供了哨兵节点,用来管理master-slave节点,并在master发生问题时,能够自动进行故障恢复操作。

整个故障恢复的工作,正是Redis哨兵自动完成的。

哨兵介绍
哨兵是Redis高可用的解决方案,它是一个管理多个Redis实例的服务工具,可以实现对Redis实例的监控、通知、自动故障转移。

在部署哨兵时,我们只需要在配置文件中配置需要管理的master节点,哨兵节点就可以根据配置,对Redis节点进行管理,实现高可用。

一般我们需要部署多个哨兵节点,这是因为在分布式场景下,要想确定某个机器的某个节点上否发生故障,只用一台机器去检测可能是不准确的

相关文章

  • 划词翻译:沙拉查词+quicker

    title: 划词翻译:沙拉查词+quickerdate: 2020-09-23 16:11:24categori...

  • java springboot 生成pdf 亲测可用 附源码

    实验时间: 2020-09-23代码: https://github.com/mefly521/springbo...

  • js日期格式化(yy-mm-dd和yy-mm-dd hh:mm:

    /** 时间格式化 将 2020-09-23T11:54:16.000+0000 格式化成 2020-09-23 ...

  • 西安自驾游攻略

    2020-09-23更新: 出发前需要准备的东西: 1.证件类:身份证/学生证/驾照,适量现金; 2.生活类:保温...

  • 2020-09-23

    2020-09-23 姓名 :曹静杰 企业名称 : 辽宁辽阳丛迪服装有限公司 组别 388期 反省1组 志工529...

  • 2020-09-23

    2020-09-23 姓名 :曹静杰 企业名称 : 辽宁辽阳丛迪服装有限公司 组别 388期 反省1组 志工529...

  • 1#树洞

    2020-09-23今天心情很复杂,想了很多事情以至于没有心思工作学习。晚上去游了一半个小时的泳感觉身体很放松,这...

  • 暹罗第一次打疫苗

    2020-09-23带着暹罗打疫苗去了2个月的时候1.35kg3个月的体重2.35kg医生注射完疫苗(妙三多)以后...

  • 日子越来越难过

    2020-09-23 所在单位在前期辞退了10位聘用人员——大多是我的同事。她们中的大多数,我分析了一下,就是经常...

  • 用心去画

    2020-09-23随笔 晚上,收拾好家务活,伺候孩子睡觉后。一心想画画,又怕一旦开始,就停不下来,因为现在已经是...

网友评论

      本文标题:2020-09-23

      本文链接:https://www.haomeiwen.com/subject/desnyktx.html