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

三明网站建设百度推广代理商赚钱吗

三明网站建设,百度推广代理商赚钱吗,地方门户网站还能做吗,万江区仿做网站缓存与数据双写一致性问题 一般来说,执行更新操作时,我们会有两种选择: 先操作数据库,再操作缓存先操作缓存,再操作数据库 这两个操作要么同时成功,要么同时失败。所以,这会演变成一个分布式…

缓存与数据双写一致性问题

一般来说,执行更新操作时,我们会有两种选择:

  • 先操作数据库,再操作缓存
  • 先操作缓存,再操作数据库

两个操作要么同时成功,要么同时失败。所以,这会演变成一个分布式事务的问题。

如果原子性被破坏,会有两种情况:

  • 操作数据库成功,操作缓存失败
  • 操作缓存成功,操作数据库失败

如果第一步已经失败了,我们直接返回Exception出去就好了,第二步根本不会执行。

先更新数据库,再更新缓存

正常情况:

  • 先操作数据库,成功
  • 在操作缓存,成功

如果原子性被破坏了:

  • 第一步操作数据库成功,第二步操作缓存失败,会导致数据库中的数据是最新的,缓存中的数据是旧数据。
  • 如果第一步操作数据库就失败了,可以直接返回错误(Exception),不会出现数据不一致。

删除缓存失败的解决策略:

  • 将要删除的key放到消息队列中
  • 自己去消费,消费失败就重试直至消费成功

先删除缓存,再更新数据库

正常情况:

  • 删除缓存成功
  • 更新数据库成功

如果原子性被破坏:

  • 第一步删除缓存成功,第二步更新数据库失败,这个没有问题,数据库中的数据和缓存中的还是一致的。
  • 第一步删除缓存失败的话,也是一样可以直接返回(Exception)错误,数据库中的数据和缓存中的还是一致的。

意外情况:

A删除缓存

B发现此时缓存没有,从数据库中读进来更新缓存

A更新了数据

此时缓存中的数据就是旧值了。

意外情况的解决策略:

  • 用消息队列,将操作都发送到消息队列中的同一个 partiion 中,保证消费消息的顺序性。
  • 在删除缓存时候,用排它读锁给这条数据锁住,等此线程更新完之后再解锁 (个人见解,因为考虑到意外情况嘛,出现的频率肯定不是很高,在这引入消息队列系统会变得很复杂)

其他保障数据一致的方案与资料

可以用 databus 或者阿里的 canal监听binlog 进行更新。

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

相关文章:

  • 网站免费高清素材软件小游戏优化seo公司哪家好
  • html5 css3个人网站快速seo整站优化排行
  • wordpress打不开页面seo网站推广方案
  • 做电商网站用什么框架腾讯体育nba
  • 阿里云免费空间合肥百度推广优化
  • 广西桂林网站建设公司百度一下 你就知道官方
  • 惠州模板做网站成都百度推广排名优化
  • 网站导航设计模板计算机培训班培训费用
  • 软件下载网站整站源码百度电话客服
  • 排名优化网站建设百度网盘登录入口
  • 建站售后服务百度网盘登陆
  • 网站不支持ie8职业培训机构有哪些
  • 百度做网站推广怎么样邢台网站公司
  • 上海给政府机关做网站开发 万深圳网站seo
  • 今日网站收录提交入口竞价推广员月挣多少
  • 自己的电脑怎么做网站网站推广软件免费版下载
  • 扬州市城市建设监察支队网站seo sem是指什么意思
  • 台州网站设计开发长沙seo网站推广
  • 济宁住房和城乡建设局网站网络销售平台
  • 网站建设能力推广app的方法和策略
  • jsp做网站好不好优化关键词软件
  • 有哪些做包装设计网站好些杭州网站seo推广
  • 网站开发税目编码如何做网络营销?
  • 外贸购物网站建站外链发布
  • php开发做网站深圳专业seo外包
  • 制定一个网站建设方案重庆seo排名外包
  • 松岗做网站费用百度客服怎么联系
  • 如何给网站做右侧悬浮电话seo优化需要做什么
  • 广州企业网站建设哪家服务好班级优化大师下载安装最新版
  • 什么网站做护工seo和sem是什么