当前位置: 首页 > news >正文

网站建设广州天河区seo优化sem推广

网站建设广州天河区,seo优化sem推广,长沙外贸建站,简洁企业网站模板一、什么是数据库和缓存双写一致性#xff1f; 在分布式系统中#xff0c;数据库和缓存会搭配一起使用#xff0c;以此来保证程序的整体查询性能。也就说#xff0c;分布式系统为了缓解数据库查询的压力#xff0c;会将查出来的数据保存在缓存中#xff0c;下次再查询时…一、什么是数据库和缓存双写一致性 在分布式系统中数据库和缓存会搭配一起使用以此来保证程序的整体查询性能。也就说分布式系统为了缓解数据库查询的压力会将查出来的数据保存在缓存中下次再查询时直接走缓存系统而不再查询数据库这样就极大的提高了整体的查询性能。 1.1 为什么缓存比数据库快 缓存之所以比数据库快的主要原因有以下 3 点 内存访问速度快缓存通常将数据存储在内存中而数据库将数据存储在磁盘上。相比于磁盘访问内存访问速度更快可以达到纳秒级别的读取速度远远快于数据库的毫秒级别的读取速度。 IO 操作次数少数据库通常需要进行磁盘 IO 操作包括读取和写入磁盘数据。而缓存将数据存储在内存中避免了磁盘 IO 的开销。内存访问不需要进行磁盘寻址和机械运动相对来说速度更快。 特殊的数据结构缓存的数据结构通常为 key-value 形式的也就是说缓存可以做到任何数据量级下的查询数据复杂度为 O(1)所以它的查询效率是非常高的而数据库采用的是传统数据结构设计可能需要查询二叉树、或全文搜索、或回表查询等操作所以其查询性能是远低于缓存系统的。 1.2 缓存一致性问题 虽然缓存可以极大的提高查询性能但同时也带来的新的问题数据库和缓存一致性的问题。 具体来说在一个常见的应用场景中当更新数据库的操作完成后需要同步更新缓存以保证缓存中的数据与数据库中的数据保持一致。然而由于数据库和缓存是两个不同的组件它们的数据更新操作是异步的可能存在以下问题 数据延迟数据库更新和缓存更新之间存在时间延迟导致缓存中的数据不是最新的。这可能会引起数据的不一致当其他请求读取数据时可能会读取到旧的数据。 更新失败在尝试更新缓存时可能出现更新失败的情况。例如缓存节点暂时不可用网络故障等。如果更新缓存失败而未进行适当的处理也会导致数据库和缓存之间的数据不一致。 也就说因为以上原因可能会导致 A 用户和 B 用户执行了同一个查询操作但是得到了完全不同的结果这就是数据库和缓存的一致性问题。 二、如何解决双写一致性问题 解决缓存和数据库一致问题的常见解决方案有以下 4 种 先修改数据库后更新缓存。 先更新缓存后修改数据库。 先修改数据库后删除缓存。 先删除缓存后修改数据库。 然而前 3 种解决方案有同一个问题也就是当第一步操作执行完之后第二步未执行的情况下就会导致数据库和缓存的一致性问题例如第一步执行完之后系统掉电了那么一致性问题就会一直存在。 相比之下第 4 种解决方案先删除缓存后修改数据库相比于前三种解决方案更有优势起码它保证了双方都未执行成功那么从数据一致性层面来讲第 4 种方案起码保证了一定的数据一致性然而第 4 种执行方案依然存在其他问题例如以下这几个 业务完整性问题程序只执行了一半第一步执行完了但第二步未执行的情况。 并发保存旧值的问题在并发环境下第四种方案可能会导致缓存保存旧值的情况例如以下执行情况 三、消息队列 延迟双删策略 双写一致性问题的最终解决方案是消息队列 延迟双删策略。 3.1 为什么要使用消息队列 因为消息队列里面有消息确认机制它可以保证我们执行完第一步之后即时掉电重启的情况依然可以执行后续的流程因为之前的消息未进行消息确认所以程序重启之后会继续执行后续的流程这样就保证了业务执行的完整性。 3.2 什么是延迟双删 延迟双删指的是删除两次缓存并且最后一次是延迟删除具体执行流程如下 删除缓存 更新数据库 延迟一会再删除缓存 最后一次延迟删除缓存的原因是为了避免上面因为并发问题导致保存旧值的情况发生所以会延迟一段时间之后再进行删除操作。这样即使有并发问题也能最大限度的解决保存旧值的情况因为是延迟之后删除的所以即使因为并发问题保存了旧值但延迟一段时间之后旧值就会被删除那么这样就自然而然的保证了数据库和缓存的最终一致性。 总结 数据库和缓存双写一致性问题是一道经典的面试题最初解决方案是先更新数据库、再删除缓存然而如果发生掉电情况只执行了前一步操作那么缓存和数据库就出现了不一致性的问题。为了解决这个问题所以通常会采用延迟双删 消息队列来保证业务的完整执行和数据一致性问题。
http://www.zqtcl.cn/news/934808/

相关文章:

  • 网站开发入哪个会计科目设计师自己的网站
  • php做网站界面代码定制网页设计报价
  • 重庆智能模板建站wordpress+widget+开发
  • vps网站空间时尚网站首页设计
  • 美容行业网站建设方案网站建设需求背景
  • 贵阳做网站找哪家好长沙部分风险区域调整
  • 设计网站 常用微信网站建设口碑好
  • 网站建设加盟列举网络推广的方式
  • 大连博硕网站建设dw做网站背景音乐
  • 江苏省建设执业网站北京做胃镜哪好德胜门网站I
  • 南京网站开发南京乐识好郑州宣传片制作多少钱
  • 昆明网站制作方案定制wordpress图片广告
  • 宜宾seo网站建设辽宁专业网站建设大全
  • 同一产品做多个网站网页打不开的解决方法
  • 手机建个人网站c 做网站开发实例
  • 做网站竞价没有点击率教你用模板做网站
  • 网站与域名南宁网络系统开发
  • 网站的域名做邮箱吗怎么建立一个网站让外国人浏览
  • 做建网站的工作一年赚几百万正安县网站seo优化排名
  • 简约手机网站源码深圳市龙华区民治街道
  • 买了个网站后怎么做三明网站优化
  • 表白网页制作免费网站制作西安网站快速优化
  • 如何破解网站后台管理做网站前端用什么软件好
  • 网站建设业务客户来源建德建设局官方网站
  • 网站设计 网站开发 优化网页设计一般尺寸
  • 好的版式设计网站网站建设商标属于哪个类别
  • 做淘宝素材网站哪个好用中国广告公司100强
  • 海拉尔网站建设平台wordpress的插件下载地址
  • 企业服务类网站常用python编程软件
  • 有哪些漫画做的好的网站西安seo建站