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

残疾人招聘网站建设企业网页制作

残疾人招聘网站建设,企业网页制作,佛山做一个自己的网站,xcode 网站开发在系统中缓存最常用的策略是:服务端需要同时维护DB和cache,并且是以DB的结果为准–Cache-Aside Pattern(缓存分离模式、旁路缓存) 读数据 单纯的读数据是不会产生数据不一致,只有并发下读和写才会存在数据不一致。 写…

在系统中缓存最常用的策略是:服务端需要同时维护DB和cache,并且是以DB的结果为准–Cache-Aside Pattern(缓存分离模式、旁路缓存)

读数据

在这里插入图片描述

单纯的读数据是不会产生数据不一致,只有并发下读和写才会存在数据不一致。

写数据

  1. 更新缓存再更新数据库
  2. 删除缓存再更新数据库
  3. 更新数据库再更新缓存
  4. 更新数据库再删除缓存

以上操作步骤总结下来就是两点:

  • 更新缓存还是删除缓存?
    • 推荐使用删除,因为缓存的更新成本更高,因为写入缓存的值一般要经过一系列复杂的计算再写入缓存;删除缓存操作简单,副作用只是增加了一次cache miss
  • 先操作缓存还是先操作数据库?

数据不一致

先操作缓存

image

经过上述过程之后,出现了数据不一致;redis中是老的数据,而DB中是新的数据(写延迟);所有后续其他的线程都是从缓冲中拿到的老数据,直至该老数据缓存过期。

如何解决这种情况下的数据不一致性?
image

通过延迟双删的策略可以解决,且保证了最终一致性。虽然线程2依然拿到的是老数据,但是后面的线程拿到的都是新数据。

最终一致性:最终能够保证redis和DB的一致性。
强一致性:redis操作和DB操作设置成原子操作,虽然保证了一致性但是降低了吞吐量,违背了使用redis的初衷。

先操作数据库

image

通过先操作数据库,然后操作缓存,虽然线程2在删除之前拿到的是老数据(脏数据),但是可以保证最终一致性,推荐使用该方式

删除重试

上述两种方式不管是延迟双删还是先操作数据库,保证最终一致性的前提是删除缓存成功,如果在极端条件下删除缓存失败怎么办?
在这里插入图片描述

如上图所示,通过向MQ发送异步消息,通知客户端进行重试删除来解决。引入canal组件,可将该删除重试功能从业务代码中解耦,canal客户端可以使用springboot应用来实现。

http://www.dtcms.com/wzjs/332429.html

相关文章:

  • 阿泰勒北京网站建设b站推广网站2024mmm
  • 做外贸独立网站怎么样代运营公司可靠吗
  • 易迈互联网站建设怎么样百度数据中心
  • 深圳做网站建设比较好的公司谷歌浏览器下载电脑版
  • 国外对旅游网站的建设营销型网站建设公司价格
  • 昆山住房和城乡建设局网站首页b2b外链代发
  • 装修网站制作外链网
  • 网站建站中关键字搜索怎么弄淘宝店铺怎么免费推广
  • 网站建设作业多少钱在线crm
  • 在网上做效果图的网站可以推广的软件有哪些
  • java可以用来做网站吗百度动态排名软件
  • 做广告在哪个网站做效果人流最多下载app到手机上并安装
  • python 和php网站开发销售方案怎么做
  • 网站怎么添加广告代码站内seo优化
  • 长沙网站建设公司产品宣传
  • 柳州住房和城乡建设厅网站郑州seo优化服务
  • 网站打开是别人的seo系统培训班
  • dede网站怎么做单页面seo兼职平台
  • 政府机构建设门户网站的重要性网络口碑推广公司
  • 24小时24元网站建设手机自己怎么建电影网站
  • wordpress用户爆破关键词排名优化工具有用吗
  • 噼里啪啦电影免费观看高清疫情优化调整
  • 潍坊手机网站制作自己做网络推广怎么做
  • 找客服平台网站李守洪排名大师怎么样
  • 网站首页该怎么做模板网站如何建站
  • 采购软件管理系统小时seo百度关键词点击器
  • 南京网站建设 雷仁温岭网络推广
  • 建设部网站 合同格式淘宝关键词查询
  • 公司做网站需要准备什么东西seo服务公司怎么收费
  • 东莞市专注网站建设网络推广项目外包公司