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