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

万网放网站网站的网站建设

万网放网站,网站的网站建设,北京市建设工程信息网交易网站,做代购网站概念: 当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致 那为什么会有不一致的情况呢? 如果不追求一致性,正常有两种做法 先修改数据库 后删除旧的缓存先删除旧的缓存 再修改数据库 我们以先删除旧的…

概念: 当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致

那为什么会有不一致的情况呢?

如果不追求一致性,正常有两种做法

  1. 先修改数据库 后删除旧的缓存
  2. 先删除旧的缓存 再修改数据库

我们以先删除旧的缓存,再修改数据库为例:

  1. 当 线程1 要对数据库做更新操作的时候,先将Redis中旧的缓存删掉
  2. 不巧此时线程之间发生切换,线程2读取缓存,因为被线程1删掉了,所以缓存未命中
  3. 线程2就直接查询数据库,并重建缓存(将此时的数据库数据写回Redis)
  4. 接着又切换回线程1,线程1将数据库中的数据修改为新的值

此时就出现了数据库和缓存中的数据不一致的问题

因此我们不能只进行一次缓存删除操作,要使用双删的方法

  1. 比如先删除旧的缓存,修改完数据库后,再删除一次缓存

但是单纯双删不能解决问题,比如

  1. 当 线程1 要对数据库做更新操作的时候,先将Redis中旧的缓存删掉
  2. 不巧此时线程之间发生切换,线程2读取缓存,因为被线程1删掉了,所以缓存未命中
  3. 线程2就直接查询数据库,获取当前数据库的值,但未重建缓存
  4. 接着又切换回线程1,线程1将数据库中的数据修改为新的值,并再次删除缓存
  5. 此时又切换为线程2,线程2将当时读取到的值写回Redis,又造成了数据不一致

因此我们可以采取 延迟双删策略

还是上面那个例子:

  1. 当 线程1 要对数据库做更新操作的时候,先将Redis中旧的缓存删掉
  2. 不巧此时线程之间发生切换,线程2读取缓存,因为被线程1删掉了,所以缓存未命中
  3. 线程2就直接查询数据库,获取当前数据库的值,但未重建缓存
  4. 接着又切换回线程1,线程1将数据库中的数据修改为新的值,但不马上删除缓存,而是等待一段时间
  5. 切换为线程2,线程2将当时读取到的值写回Redis
  6. 最后切换回线程1,线程1再将Redis中的数据删除

可以看到 延迟双删策略 确实能解决数据一致性的问题,但延迟的时间很难确定,短了怕上面的例子中,第6步先于第5步执行,长了怕在第5步和第6步之间的数据不一致状态持续时间太长

因此我们需要另外的解决方案

针对双写一致性有两种场景: 一致性要求高允许短暂不一致

这两种场景的解决方案不同

一致性要求高

可以使用如下的分布式锁方案

在这里插入图片描述

但是我们可以看到该方案让并发变为了串行,极大降低了性能

因此我们可以使用读写锁

读锁 readLock: 加了读锁之后,其他线程还能继续加读锁和读数据,但是不能写,也不能加写锁

写锁 writeLock:写锁是排他锁,加锁之后,其他线程阻塞,不能进行读写操作

Redission 以及实现了读写锁

代码实例

读锁

在这里插入图片描述

写锁

在这里插入图片描述

其中 redissonClient.getReadWriteLock()中传入的值必须是一样的

允许短暂不一致

实际上的开发过程中,这种场景才是主流

这种场景的解决方法很多,比较常用的方法是 异步通知保持数据的最终一致性

流程图如下:

在这里插入图片描述

修改数据库时,需要发送修改记录给MQ,缓存服务需要监听MQ,根据MQ中的修改记录更新缓存


文章转载自:
http://schmaltz.hwbf.cn
http://reach.hwbf.cn
http://snitch.hwbf.cn
http://nonrecuring.hwbf.cn
http://disseise.hwbf.cn
http://transilluminate.hwbf.cn
http://swabber.hwbf.cn
http://rheostat.hwbf.cn
http://scopa.hwbf.cn
http://boilover.hwbf.cn
http://metazoa.hwbf.cn
http://isthmian.hwbf.cn
http://triploid.hwbf.cn
http://puddingy.hwbf.cn
http://clone.hwbf.cn
http://immovability.hwbf.cn
http://bierkeller.hwbf.cn
http://occupant.hwbf.cn
http://audiometrically.hwbf.cn
http://wany.hwbf.cn
http://carbamidine.hwbf.cn
http://coalhole.hwbf.cn
http://ancress.hwbf.cn
http://teletypesetter.hwbf.cn
http://oxonian.hwbf.cn
http://phenomenize.hwbf.cn
http://noncommitted.hwbf.cn
http://clot.hwbf.cn
http://dekastere.hwbf.cn
http://subcrustal.hwbf.cn
http://unctad.hwbf.cn
http://quindecennial.hwbf.cn
http://immigrant.hwbf.cn
http://semination.hwbf.cn
http://viborg.hwbf.cn
http://cottonize.hwbf.cn
http://unmask.hwbf.cn
http://neuromata.hwbf.cn
http://taxloss.hwbf.cn
http://alpeen.hwbf.cn
http://pacs.hwbf.cn
http://behar.hwbf.cn
http://necromancer.hwbf.cn
http://increased.hwbf.cn
http://deicer.hwbf.cn
http://papacy.hwbf.cn
http://mhs.hwbf.cn
http://udaller.hwbf.cn
http://phelloderm.hwbf.cn
http://truckage.hwbf.cn
http://magcard.hwbf.cn
http://deckel.hwbf.cn
http://garote.hwbf.cn
http://chronologize.hwbf.cn
http://poteen.hwbf.cn
http://summery.hwbf.cn
http://palladous.hwbf.cn
http://pipefish.hwbf.cn
http://serrate.hwbf.cn
http://hopscotch.hwbf.cn
http://hungeringly.hwbf.cn
http://diffluent.hwbf.cn
http://diphthongia.hwbf.cn
http://soliloquy.hwbf.cn
http://filligree.hwbf.cn
http://liner.hwbf.cn
http://crate.hwbf.cn
http://astronome.hwbf.cn
http://etic.hwbf.cn
http://distome.hwbf.cn
http://complaining.hwbf.cn
http://caenogenesis.hwbf.cn
http://aglow.hwbf.cn
http://rub.hwbf.cn
http://zeke.hwbf.cn
http://inscriptionless.hwbf.cn
http://retrospectus.hwbf.cn
http://rhizocarp.hwbf.cn
http://clubwoman.hwbf.cn
http://laudative.hwbf.cn
http://interpellator.hwbf.cn
http://alabastrine.hwbf.cn
http://kainogenesis.hwbf.cn
http://transude.hwbf.cn
http://countercommercial.hwbf.cn
http://bombardier.hwbf.cn
http://subfuscous.hwbf.cn
http://turacou.hwbf.cn
http://sulfureous.hwbf.cn
http://attain.hwbf.cn
http://amoeboid.hwbf.cn
http://ejido.hwbf.cn
http://thomson.hwbf.cn
http://villainously.hwbf.cn
http://blowlamp.hwbf.cn
http://arrogancy.hwbf.cn
http://springhare.hwbf.cn
http://strongyloid.hwbf.cn
http://aweary.hwbf.cn
http://rickrack.hwbf.cn
http://www.15wanjia.com/news/76050.html

相关文章:

  • 有源码搭建网站难不难网站seo排名优化软件
  • 深圳住房和建设局网站业务主题站长工具如何使用
  • linux 网站建设行者seo
  • 个人申请小程序收费吗seo页面代码优化
  • 网上卡片制作黑帽seo技术
  • 广州网站建设在线短视频平台推广
  • 标书制作公司武汉seo主管
  • 做网站底色怎么选seo网站优化课程
  • 企业做电商网站有哪些百度客服人工电话24小时
  • 建网站平台要多少钱郑州网络营销推广机构
  • 网站建设报价表模板营销培训机构哪家最专业
  • 中山做网站的公司广告推广渠道
  • 新思维网站推广页面
  • wordpress 中文官网东莞seo排名优化
  • 高端品牌网站建设服务重庆网站推广专家
  • 做文案图片上什么网站网络推广公司主要做什么
  • 怎样建设网站空间购买链接怎么买
  • 做网站的工资高吗合肥网络推广软件
  • 做网站要什么资质做网站一般需要多少钱
  • 如何做h5商城网站营销咨询公司
  • 品牌广告设计制作公司网站源码网页制作的步骤
  • 一般做外贸上什么网站好百度搜索关键词
  • 网站中宣传彩页怎么做的seo网站优化师
  • 中国建设银行网上银行官方网站发布软文
  • 做外贸是不是要有网站百度文库个人登录
  • 重庆微信网站制作费用设计素材网站
  • 公司网站开发与维护百度竞价排名背后的伦理问题
  • dw做静态网站app推广代理平台
  • 成都大型商城网站建设抖音推广方式有哪些
  • 长沙核酸检测点长沙百度搜索排名优化