首页 > 数据库 >Redis-----Redis高可用理论

Redis-----Redis高可用理论

时间:2022-09-25 00:11:44浏览次数:58  
标签:可用 Redis 数据库 redis 挂掉 ----- 监控 主从

Redis虽然是一个非常好用的缓存数据库,但是同样也会面临在分布式环境中,单点故障等一些常见的问题,所以,可以通过一些方式去做到规避单点故障等一些的问题

Redis可以沿用AKF的理论去做扩展,X轴横向扩展自己的可用性,主备的方式或者主从的方式,可以解决单点故障的问题,Y轴纵向扩展,将系统中的功能和业务数据纵向扩展拆分,降低

Redis的数据库压力,Z轴斜方向穿过XY其中的Redis,可以将一些通用信息分片存储到不同的数据库里,使得数据库的压力得到质的下降

 

Redis主从,主备产生以后,会随着主从主备的情况产生新的问题

数据一致性问题

场景1:如果在写入数据的的时候,主从之间的网络断开了,那么可能写入操作只能写入主里,分不到从数据库中,造成了数据的不一致性

场景2:如果设置了强一致性的操作,那么可能产生写入时的同步阻塞,当写数据的时候,必须等主写完分享给从,才能返回给页面告知页面操作成功,

这样的功能不合适,影响用户体验度

场景3:我们可以在主从之间添加kafka消息队列,保证数据的最终一致性,通过异步的方式去处理问题,可以保证用户的体验度,也可以保证数据的数据最终一致性

 

但是,即使是这样,redis的数据库依然只是单节点的数据,所以,需要当在主数据库挂掉的时候,用某一个从数据库作为主数据库的备用主数据库,这样可以保证redis的可用性

于是,产生了所谓的redis的监控,也叫做redis的哨兵模式,顾名思义就是站岗放哨的方式,当主数据库崩溃以后,通过多台监控机器的监控和投票,来确定主数据库是否挂掉,挂掉以后选择哪台作为替代主数据库的数据库

 

关于监控系统,尽量选择单数的数量来监控

因为,如果选择3台,当三台中有一台和主机断了链接抛出错误信息说主机挂了的时候,我们可以通过其他两台实行过半机制来确定下来主机是否真的挂掉了

3台的时候,   两台可以作为一组  ,另一台一个人

4台的时候,   三台可以作为一组   ,另一台一个人,   所以在这个时候可以发现,如果选择四台作为监控的话,相当于浪费资源,明明三台足以

 

标签:可用,Redis,数据库,redis,挂掉,-----,监控,主从
From: https://www.cnblogs.com/itqwb/p/16727033.html

相关文章

  • 函数加强 -- 学员管理系统2
    1.4.3修改学员信息需求:1.用户输入目标学员姓名2.检查这个学员是否存在2.1如果存在,则修改这位学员的信息,列入手......
  • 简明设计模式---桥接模式
    简述类型:结构型目的:通过抽离出多个维度相互组合(聚合)来代替继承,简化系统。话不多说,看个优化案例。优化案例现有系统中,对于画面窗口的边框有一套样式来控制是否有圆......
  • F-02 BAPI
    *-----------BAPI参数定义DATA:ls_documentheaderTYPEbapiache09,lt_accountglTYPESTANDARDTABLEOFbapiacgl09,"总账lt_acc......
  • 经典重塑-yolov3的正负样本选择和损失函数的故事
    先讲一下正负样本选择,因为必须要先选择正负样本才能计算损失,毕竟坐标误差,iou误差和分类误差都是和正样本相关的。 然后再来讲一下损失函数的计算方式  我个人理......
  • sql注入 sql-labs过关实战学习
      一、SQL注入原理SQL注入就是把SQL命令插入到Web表单然后提交到所在页面请求(查询字符串),从而达到欺骗服务器执行恶意的SQL命令。(页面请求包括get、post等)它是利用现在......
  • 关于 find 指令的 +n、-n、n
    描述find指令查找文件时可以通过时间来锁定或缩小搜查范围。其中需要利用到文件的三个时间?:AccessTime(atime)、ModifyTime(mtime)和ChangeTime(ctime)。通常会指定在at......
  • LeetCode - 数组的改变和移动
    1.数组的改变和移动总结1.1数组的改变数组在内存中是一块连续的内存空间,我们可以直接通过下标进行访问,并进行修改。在Java中,对于List类型来说,我们可以通过set(idx,el......
  • 【微服务】- 服务调用 - OpenFeign
    服务调用-OpenFeign......
  • 2022-2023-1 20221413《计算机基础与程序设计》第四周学习总结
    ##作业信息|这个作业属于哪个课程|[2022-2023-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP)||这个作业要求在哪里|[2022-2023-1......
  • vue3 基础-Mixin
    本篇开始来学习一波vue中的一些复用性代码的基础操作,首先来介绍关于代码"混入"mixin的写法.直观理解这个mixin就是一个js对象去"混入"vue的组件呀,插件呀......