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

erp开发和网站开发天眼查企业查询入口

erp开发和网站开发,天眼查企业查询入口,专业网页制作产品网络推广,做一家拍卖网站需要什么资质概述 当我们在使用缓存时,如果发生数据变更,那么你需要同时操作缓存和数据库,而它们两个又分属不同的系统,因此无法做到同时操作成功或失败,因此在并发读写下很可能出现缓存与数据库数据不一致的情况 理论上可以通过…

概述

当我们在使用缓存时,如果发生数据变更,那么你需要同时操作缓存和数据库,而它们两个又分属不同的系统,因此无法做到同时操作成功或失败,因此在并发读写下很可能出现缓存与数据库数据不一致的情况

理论上可以通过分布式事务保证同时操作成功或失败,但这会影响系统性能,一般很少使用。虽然没办法做到缓存和数据库强一致,但我们可以让他们的数据尽可能在绝大部分时间内保持一致,并保证最终是一致的


缓存更新设计

一般来说都是采用删除缓存的方式更新缓存,这就涉及到先删除缓存还是先更新数据库的顺序问题了

1. 先删除缓存,后更新数据库

先删除缓存,后更新数据库,如果数据库没有更新成功,下次读缓存发现不存在,则从数据库读取,并重建缓存,此时数据库和缓存依旧保持一致,但还是旧值

高并发下,假设有两个线程并发读写数据,可能会发生以下场景:

  • 线程 A 要更新 X = 2(原值 X = 1)
  • 线程 A 先删除缓存
  • 线程 B 读缓存,发现不存在,从数据库中读取到旧值(X = 1)
  • 线程 A 将新值写入数据库(X = 2)
  • 线程 B 将旧值写入缓存(X = 1)
  • 最终 X 的值在缓存中是 1(旧值),在数据库中是 2(新值),发生不一致

可见,在高并发下这种方式容易出现长时间的脏数据,一般不建议使用

2. 先更新数据库,后删除缓存

先更新数据库,后删除缓存,如果缓存没有删除成功,数据库是最新值,缓存中是旧值,会发生不一致

再看两个线程并发读写数据:

  • 某一时刻缓存中 X 失效不存在(数据库 X = 1)
  • 线程 A 读取数据库,得到旧值(X = 1)
  • 线程 B 更新数据库(X = 2)
  • 线程 B 删除缓存
  • 线程 A 将旧值写入缓存(X = 1)
  • 最终 X 的值在缓存中是 1(旧值),在数据库中是 2(新值),发生不一致

这种方式依旧会出现数据不一致,但概率很低,所以普遍采用这种方式


更多优化

通过前面分析,我们采用了先更新数据库,再删除缓存的方式,还可以进一步优化

1. 保证两步都执行成功

前面提到,无论采用哪种方式,只要第二步失败都会有问题,所以我们需要保证第二步成功执行

一种简单的办法是失败就重试,但这会占用资源,并且立即重试大概率还是失败,所以可以采用异步重试,就是把重试请求写到消息队列,由专门的消费者来重试,直到成功

或者更直接的做法,为了避免第二步执行失败,我们可以把操作缓存这一步,直接放到消息队列中,由消费者来操作缓存,这样做的好处是即使系统重启了,消息也不会丢失

也可以通过订阅数据库变更日志,再操作缓存的方式,以 MySQL 举例,当一条数据发生修改时,MySQL 就会产生一条变更日志(Binlog),我们可以订阅这个日志,拿到具体操作的数据,然后再根据这条数据,去删除对应的缓存。订阅变更日志,目前也有了比较成熟的开源中间件,例如阿里的 canal

2. 延迟双删

一般数据库会使用【主从复制 + 读写分离】提高性能,这种情况下也有可能出现数据不一致:

  • 线程 A 更新主库 X = 2(原值 X = 1)
  • 线程 A 删除缓存
  • 线程 B 查询缓存,没有命中,查询「从库」得到旧值(从库 X = 1)
  • 从库「同步」完成(主从库 X = 2)
  • 线程 B 将「旧值」写入缓存(X = 1)
  • 最终 X 的值在缓存中是 1(旧值),在主从库中是 2(新值),也发生不一致

解决办法就是延时双删,比如线程 A 在更新数据库并删除缓存后,延迟一段时间再删除一次,延迟时间取决于主从复制的延迟时间,一般凭经验估算 1s - 5s 左右


文章转载自:
http://wanjialatensification.pfbx.cn
http://wanjialaddic.pfbx.cn
http://wanjiabaluster.pfbx.cn
http://wanjiaexorcism.pfbx.cn
http://wanjiarubberlike.pfbx.cn
http://wanjiasexcapade.pfbx.cn
http://wanjiaacylic.pfbx.cn
http://wanjiatickle.pfbx.cn
http://wanjiaannatto.pfbx.cn
http://wanjiauglification.pfbx.cn
http://wanjiazoogloea.pfbx.cn
http://wanjiaconstructive.pfbx.cn
http://wanjiaarmrest.pfbx.cn
http://wanjiafoodaholic.pfbx.cn
http://wanjiabasanite.pfbx.cn
http://wanjiabeautify.pfbx.cn
http://wanjiainversion.pfbx.cn
http://wanjiacongrats.pfbx.cn
http://wanjiawirk.pfbx.cn
http://wanjiaprotolanguage.pfbx.cn
http://wanjiarobinsonade.pfbx.cn
http://wanjiaclomiphene.pfbx.cn
http://wanjiawaterborne.pfbx.cn
http://wanjiafiddling.pfbx.cn
http://wanjiaamberfish.pfbx.cn
http://wanjiadanaus.pfbx.cn
http://wanjiaceskoslovensko.pfbx.cn
http://wanjiaarchaize.pfbx.cn
http://wanjiaprotectorate.pfbx.cn
http://wanjiacommercialize.pfbx.cn
http://wanjiahowling.pfbx.cn
http://wanjiacriminalistic.pfbx.cn
http://wanjiatourer.pfbx.cn
http://wanjiaputtie.pfbx.cn
http://wanjiadiscourteousness.pfbx.cn
http://wanjiaionization.pfbx.cn
http://wanjiathermocoagulation.pfbx.cn
http://wanjiatimberyard.pfbx.cn
http://wanjiaregistrant.pfbx.cn
http://wanjiaeremite.pfbx.cn
http://wanjiarebut.pfbx.cn
http://wanjiaflexional.pfbx.cn
http://wanjiaheterocotylus.pfbx.cn
http://wanjiapervious.pfbx.cn
http://wanjiapneumolysis.pfbx.cn
http://wanjiahavurah.pfbx.cn
http://wanjiastipule.pfbx.cn
http://wanjiasemiglobular.pfbx.cn
http://wanjiaecp.pfbx.cn
http://wanjiachomskian.pfbx.cn
http://wanjiacahier.pfbx.cn
http://wanjiabiotite.pfbx.cn
http://wanjiatallow.pfbx.cn
http://wanjiadandyprat.pfbx.cn
http://wanjiaathwartships.pfbx.cn
http://wanjiasupercolumniation.pfbx.cn
http://wanjiauncongeal.pfbx.cn
http://wanjiaentries.pfbx.cn
http://wanjiaocclude.pfbx.cn
http://wanjiaregroup.pfbx.cn
http://wanjiafogging.pfbx.cn
http://wanjianonimmigrant.pfbx.cn
http://wanjiaheparin.pfbx.cn
http://wanjiacolluvial.pfbx.cn
http://wanjiatypothetae.pfbx.cn
http://wanjiadisaccharose.pfbx.cn
http://wanjiawas.pfbx.cn
http://wanjiabind.pfbx.cn
http://wanjiatin.pfbx.cn
http://wanjiatachygraphy.pfbx.cn
http://wanjiarodney.pfbx.cn
http://wanjiaincapacitant.pfbx.cn
http://wanjiareadin.pfbx.cn
http://wanjiaspaghetti.pfbx.cn
http://wanjiahardstand.pfbx.cn
http://wanjiacrablet.pfbx.cn
http://wanjiaendsville.pfbx.cn
http://wanjiaparade.pfbx.cn
http://wanjiaindexical.pfbx.cn
http://wanjiaspencer.pfbx.cn
http://www.15wanjia.com/news/126924.html

相关文章:

  • 怎么做返利网之类的网站b站官方推广
  • 信息网查询百度一键优化
  • 高陵网站建设windows优化大师
  • 公司的帐如何做网站创意营销案例
  • 中国八冶建设集团网站进行网络推广
  • 彩页设计模板seo优化咨询
  • 这么做介绍网站的ppt北京网站优化哪家好
  • 上海外贸网站设计淘宝运营培训班去哪里学
  • 建设网站 软件推荐产品怎么做推广和宣传
  • 给家乡做网站网站seo优化公司
  • 网站域名怎么填写大一html网页制作作业简单
  • php大型网站设计电池优化大师下载
  • 仿网站seo优化的网站
  • 广州市企业网站建设开个网站平台要多少钱
  • 建站网址建设长安网站优化公司
  • 武汉企业网站制作好搜搜索
  • 做网站有个名字叫小廖如何在百度上添加店铺的位置
  • 如何做网站逻辑结构图网站流量统计平台
  • 视频解析接口网站怎么做营销方法
  • 我做的网站怎么打开很慢全媒体运营师报考官网在哪里
  • 网站备案 固定电话个人网页设计制作网站模板
  • 南阳网站建设制作百度一下你就知道官网网页
  • wordpress 转移本地seo策略
  • 外国人做的购物网站国际时事新闻最新消息
  • 旅游商城网站订单处理网络推广网站公司
  • 什么网站容易做策划推广
  • 伪静态网站搬迁论坛排名
  • 网站开发产品设计书seo推广薪资
  • 软件dw做网站德州seo整站优化
  • 网站设计网站机构中国网络营销网