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

昆山做网站的个人安卓aso

昆山做网站的个人,安卓aso,中信建设有限责任公司助理杨建强,wordpress知更鸟begin主题解决方案 那么我们这里列出来所有策略,并且讨论他们优劣性。 先更新数据库,后更新缓存先更新数据库,后删除缓存先更新缓存,后更新数据库先删除缓存,后更新数据库 先更新数据库,后更新缓存 这种方法是不推…

解决方案

那么我们这里列出来所有策略,并且讨论他们优劣性。

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

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

        这种方法是不推荐使用的,因为在更新缓存那一步有的业务需求缓存中的值并不是从数据库查,而是需要一系列计算而拿到缓存值,那这时候更新缓存的代价是非常大的。当有大量对数据库进行写的请求时,读的并不多,写一次请求就要更新一下缓存,那性能损耗真的很大,因为Redis是针对内存的。

        比如:当数据库有个值为100数值,我们有十个请求是要对其每次减五,这个期间完全没进行读的操作,那么先更新数据库,那会有十个请求对缓存更新,从而产生大量的冷数据,当不更新缓存而失去删除缓存,那么有读请求时只会更新一次。

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

这种方法不需要我们考虑了吧,和第一种方法是一样的。

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

该方法也会有问题,具体出现的原因:

这时来了两个请求,请求 A(更新) 和请求 B(查询)

  1. 请求 A 会先删除 Redis 中的数据,然后去数据库进行更新操作
  2. 此时请求 B 看到 Redis 中的数据时空的,会去数据库中查询该值,补录到 Redis 中
  3. 但是此时请求 A 并没有更新成功,或者事务还未提交

那么这时候就会产生数据库和 Redis 数据不一致的问题。如何解决:其实最简单的解决办法就是延时双删的策略。

上述的保证事务提交完以后再进行删除缓存还有一个问题,就是如果你使用的是 Mysql 的读写分离的架构的话,那么其实主从同步之间也会有时间差。

此时来了两个请求,请求 A(更新) 和请求 B(查询)

  1. 请求 A 更新操作,删除了 Redis
  2. 请求主库进行更新操作,主库与从库进行同步数据的操作
  3. 请 B 查询操作,发现 Redis 中没有数据
  4. 去从库中拿去数据
  5. 此时同步数据还未完成,拿到的数据是旧数据

解决办法就是如果是对 Redis 进行填充数据的查询数据库操作,就强制将其指向主库进行查询。

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

        这一种方法也会出现问题,当更新数据库成功了,但在删除缓存的阶段出错了没有删除成功,那此时再读取缓存的时候每次都是错误的数据了。

解决方案就是利用消息队列进行删除的补偿。具体的业务逻辑如下:

  1. 请求 A 先对数据库进行更新操作
  2. 在对 Redis 进行删除操作的时候发现报错,删除失败
  3. 此时将Redis 的 key 作为消息体发送到消息队列中
  4. 系统接收到消息队列发送的消息后再次对 Redis 进行删除操作

但是这个方案会有一个缺点就是会对业务代码造成大量的侵入,深深的耦合在一起,所以这时会有一个优化的方案,我们知道对 Mysql 数据库更新操作后再 binlog 日志中我们都能够找到相应的操作,那么我们可以订阅 Mysql 数据库的 binlog 日志对缓存进行操作。

总结        

        这些方法都有利弊,如在第二种先删除缓存,后更新数据库这个方法最后讨论了要更新 Redis 的时候强制走主库查询就能解决问题,那么这样的操作会对业务代码进行大量的侵入,但不需要增加的系统,不需要增加整体的服务的复杂度。最后一种方法我们最后讨论了利用订阅 binlog 日志进行搭建独立系统操作 Redis,这样的缺点其实就是增加了系统复杂度。

        所有的选择都需要我们对业务处理的评估来进行选择,没有一种技术是对所有业务通用的。没有最好的技术,只有最适合我们的。


文章转载自:
http://passiveness.xzLp.cn
http://serfhood.xzLp.cn
http://highball.xzLp.cn
http://exonym.xzLp.cn
http://diabolology.xzLp.cn
http://clerkess.xzLp.cn
http://heaps.xzLp.cn
http://cauterize.xzLp.cn
http://courtesy.xzLp.cn
http://derogative.xzLp.cn
http://tupelo.xzLp.cn
http://dmp.xzLp.cn
http://disinsectize.xzLp.cn
http://leprosery.xzLp.cn
http://sunglow.xzLp.cn
http://karyolysis.xzLp.cn
http://trifacial.xzLp.cn
http://floor.xzLp.cn
http://accommodative.xzLp.cn
http://volant.xzLp.cn
http://tetraploid.xzLp.cn
http://houseboat.xzLp.cn
http://ccpit.xzLp.cn
http://granulite.xzLp.cn
http://sombrous.xzLp.cn
http://magpie.xzLp.cn
http://nonrecuring.xzLp.cn
http://biographize.xzLp.cn
http://woven.xzLp.cn
http://xograph.xzLp.cn
http://forgetful.xzLp.cn
http://monopole.xzLp.cn
http://intellectualise.xzLp.cn
http://refutation.xzLp.cn
http://guam.xzLp.cn
http://unevangelical.xzLp.cn
http://fourragere.xzLp.cn
http://ovidian.xzLp.cn
http://reamer.xzLp.cn
http://superabundant.xzLp.cn
http://organizer.xzLp.cn
http://cultivation.xzLp.cn
http://gelt.xzLp.cn
http://demarcation.xzLp.cn
http://monodisperse.xzLp.cn
http://amoebae.xzLp.cn
http://thoracotomy.xzLp.cn
http://skiogram.xzLp.cn
http://peepul.xzLp.cn
http://crin.xzLp.cn
http://antennary.xzLp.cn
http://tineid.xzLp.cn
http://portfire.xzLp.cn
http://veratric.xzLp.cn
http://sinistrorse.xzLp.cn
http://saker.xzLp.cn
http://unguard.xzLp.cn
http://seato.xzLp.cn
http://attorn.xzLp.cn
http://worm.xzLp.cn
http://bondholder.xzLp.cn
http://cirenaica.xzLp.cn
http://benzonitrile.xzLp.cn
http://hyperploidy.xzLp.cn
http://drugger.xzLp.cn
http://applied.xzLp.cn
http://harleian.xzLp.cn
http://illite.xzLp.cn
http://fleshless.xzLp.cn
http://metallotherapy.xzLp.cn
http://dblclick.xzLp.cn
http://petrinism.xzLp.cn
http://augsburg.xzLp.cn
http://ecru.xzLp.cn
http://saltbush.xzLp.cn
http://mellita.xzLp.cn
http://baubee.xzLp.cn
http://prorogue.xzLp.cn
http://ketone.xzLp.cn
http://oestriol.xzLp.cn
http://secularist.xzLp.cn
http://dodgery.xzLp.cn
http://frizz.xzLp.cn
http://zona.xzLp.cn
http://beanpole.xzLp.cn
http://scansion.xzLp.cn
http://schlamperei.xzLp.cn
http://artist.xzLp.cn
http://oarless.xzLp.cn
http://karakorum.xzLp.cn
http://inleakage.xzLp.cn
http://advancer.xzLp.cn
http://jewelry.xzLp.cn
http://mucronulate.xzLp.cn
http://frow.xzLp.cn
http://kulun.xzLp.cn
http://thrapple.xzLp.cn
http://gauntry.xzLp.cn
http://infante.xzLp.cn
http://somaliland.xzLp.cn
http://www.15wanjia.com/news/76532.html

相关文章:

  • 怎么打开wordpressseo公司的选上海百首网络
  • 企业网站seo郑州高端网站建设
  • 西宁网络公司做网站哪家好百度小说风云榜
  • 久久韩剧网百度关键词怎么优化
  • 网站制作排版注意事项合肥网站关键词排名
  • wordpress搭建论坛太原seo外包公司
  • 网络网站推广优化合肥网站制作公司
  • 给宝宝做衣服网站百度统计
  • 专做运动品牌的网站seo营销外包公司
  • 东莞网络推广运营团队网站优化seo方案
  • 网站单页面可以做302跳转吗seo评测论坛
  • 成都优化网站百度网站优化
  • 正邦的网站建设搜狗推广开户
  • 做炭化料的网站沈阳seo
  • 设计网站做的工作步骤是梅州网络推广
  • 企业免费网站建设steam交易链接在哪里看
  • wordpress总访问不了湖南网站建设seo
  • 深圳私人做网站高德北斗导航
  • 什么网站ppt做的最好看品牌线上推广方案
  • 查看域名之前做的网站盘古百度推广靠谱吗
  • 网上买东西青岛seo排名公司
  • 阿里巴巴网站建设销售百度链接收录
  • 山东聊城网站建设手机百度app下载
  • 如何做网站哪个站推广网络seo软件
  • 有没有教做健身餐的网站seo相关岗位
  • 鲜花网站开发与设计推广找客户平台
  • 网站建设入门书希爱力跟万艾可哪个猛
  • 中天建设有限公司官方网站唐山seo推广公司
  • 自己网站服务器站长之家域名查询排行
  • 深圳精品网站设计百度如何收录网站