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

北京设计公司logo手机清理优化软件排名

北京设计公司logo,手机清理优化软件排名,澳门赌网站怎么做代理,深圳本地招聘网概念: 当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致 那为什么会有不一致的情况呢? 如果不追求一致性,正常有两种做法 先修改数据库 后删除旧的缓存先删除旧的缓存 再修改数据库 我们以先删除旧的…

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

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

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

  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://www.mmbaike.com/news/62949.html

相关文章:

  • 公司网站开发费能记研发费用哪个科目网时代教育培训机构官网
  • 17网站一起做网店普宁池尾发软文是什么意思
  • 做网站写代码好还是模板足球比赛直播2021欧冠决赛
  • 做网站推广的方法有哪些北京网络营销外包公司哪家好
  • 附近的网站建设公司郑州seo服务公司
  • 做网站工资高吗seowhy教研室
  • 自己做电影网站需要的成本如何推广公司网站
  • wordpress做垃圾站申请网站怎样申请
  • 男做直播网站网站建设平台官网
  • 网站备案信息查询seo含义
  • labview 做网站深圳刚刚突然宣布
  • 门户网站的基本特征有新网站怎么推广
  • 商城网站上做内容冲突吗seo网站推广经理招聘
  • 公司做网站设计的百度最新秒收录方法2023
  • 易语言怎么做网站竞价代运营公司
  • wordpress全站百度热搜榜排名
  • 电子商务网站规划报告google chrome谷歌浏览器
  • 河南免费网站建设百度今日小说排行榜
  • 平顶山市建设局网站西安网站推广排名
  • 谁做的12306网站百度帐号登录入口
  • 眼科医院网站开发策划百度推广怎么收费的
  • 网站建设实训报告的内容怎么写友情链接交换的方法
  • 整形美容医院手机网站wap模板北京网站seo
  • 怎么看网站的外链保定seo网络推广
  • 网站制作首选 新鸿儒seo公司排名
  • wordpress评论优化插件网站优化费用报价明细
  • 软件开发公司网络安全管理制度杭州seo联盟
  • 用手机做网站好学吗创建自己的网页
  • 哈尔滨市建设工程招标网流程优化的七个步骤
  • 黄山网站建设公司拼多多关键词优化是怎么弄的