再也不怕面试遇到 Redis 和 MySQL 读写一致性问题了

JAVA herman 87浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

关于 CAP 理论,我前面已经写过相关文章了,比如,这一篇《详解 CAP 定理 Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)》,好评如潮。

CAP 理论

  • C 一致性:数据在分布式环境下的多个副本之间能否保持一致性,这里的一致性更多是指强一致性;
  • A 可用性:分布式系统一直处于可用状态,对于请求总是能在有限的时间 内返回结果致性;
  • P 分区容错性:除非整个网络故障,分布式系统在任何网络或者单点故障时,仍能对外提供满足一致性和可用性的服务;

CAP理论:一个分布式系统不可能同时满足一致性、可用性和分区容错性这三个 基本需求,最多只能同时满足其中的两项。

面试中的 CAP 理论

架构师的精力往往就花在怎么样根据业务场景在A和C直接寻求平衡。

BASE 理论

  • Basically Avaliable 基本可用:当分布式系统出现不可预见的故障时,允许损失部分可用性,保障系统的“基本可用”;体现在“时间上的损失”和“功能上的损失”;例如:部分用户双十一高峰期淘宝页面卡顿或降级处理;
  • Soft state 软状态:允许系统中的数据存在中间状态,既系统的不同节点的数据副本之间的数据同步过程存在延时,并认为这种延时不会影响系统可用性;例如:12306网站卖火车票,请求会进入排队队列;
  • Eventually consistent 最终一致性:所有的数据在经过一段时间的数据同步后,最终能够达到一个一致的状态;例如:理财产品首页充值总金额 短时不一致;

BASE 理论:即使无法做到强一致性,但分布式系统可以根据自己的业务特点,采用适当的方式来使系统达到最终的一致性。

面试中经常会遇到分布式一致性问题,最常见的是 Redis 和 MySQL 的一致性问题。回答这类问题,不管你采用哪种缓存模式,都有漏洞,都不完美。因此,最好的做法就是利用业务的特点,做到最终的一致性。

以上,都属于分布式系统协调“方法论”,CAP 理论和 BASE 理论是最常见和面试中最常被问到的知识点。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 再也不怕面试遇到 Redis 和 MySQL 读写一致性问题了