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

苏州正规做网站公司济南响应式网站开发

苏州正规做网站公司,济南响应式网站开发,我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢,做网站导出用什么色彩模式目录 前言 问题与解决方案 缓存击穿 缓存穿透 缓存雪崩 缓存一致性 前言 在提升接口性能的方案中#xff0c;毫无疑问#xff0c;使用缓存是最有效果的#xff0c;但同时也会带来新的问题。 缓存击穿缓存穿透缓存雪崩缓存一致性 以上问题都是引入缓存需要考虑的毫无疑问使用缓存是最有效果的但同时也会带来新的问题。 缓存击穿缓存穿透缓存雪崩缓存一致性 以上问题都是引入缓存需要考虑的在设计时就需要做好相应的解决措施。 问题与解决方案 缓存击穿 缓存击穿是指在高并发的情况下某个热点key突然失效或者未被缓存导致大量请求直接穿透到后端数据库从而使得数据库负载过高甚至崩溃的问题。 这种情况通常发生在缓存中的热点数据过期或失效时由于并发用户特别多读缓存没读到数据后同时去数据库中取数据引起数据库压力瞬间增大。 解决方案 设置热点数据永不过期对于基本不会发生更新的热点数据可以将其设置为永不过期以避免缓存击穿的发生。但这种方法需要谨慎使用以免影响数据的实时性。使用分布式锁在缓存失效时通过分布式锁如Redis、zookeeper等控制只有一个线程去数据库查询并更新缓存其他线程则等待锁释放后访问缓存。缓存预热在系统启动或低峰时段预先将热点数据加载到缓存中避免在高并发时从数据库加载数据。 缓存穿透 缓存穿透是指查询一个一定不存在的数据由于缓存是不命中时需要从数据库查询而查询的结果在数据库中也不存在因此不会写入缓存。这将导致这个不存在的数据每次请求都要到数据库去查询进而给数据库带来压力。 当用户或系统查询一个在数据库中不存在的数据时由于缓存中没有缓存该数据因为数据本身不存在每次查询都会失败并直接访问数据库。 解决方案 使用布隆过滤器同缓存击穿中的布隆过滤器使用方式对于不存在的数据直接返回空结果避免无效的数据库查询。空值缓存对于查询结果为空的数据也将其缓存起来但设置一个较短的过期时间这样再次查询相同的数据时就可以直接从缓存中返回空结果避免查询数据库。 缓存雪崩 缓存雪崩是指缓存中数据大批量到过期时间而查询数据量巨大引起数据库压力过大甚至down机。 当缓存中大量数据同时过期时如果此时有大量请求需要访问这些数据那么这些请求都会直接穿透到数据库导致数据库压力骤增。 解决方案 随机过期时间在设置缓存的过期时间时采用随机时间策略避免大量缓存同时过期。限流降级在缓存雪崩发生时通过限流措施限制对数据库的访问频率同时开启降级策略将一些非核心功能暂时关闭或简化处理。 缓存一致性 在非并发情况下由于写数据库和更新缓存之间存在时间差所以在这段时间差内就会出现数据不一致问题即缓存的数据和数据库中的数据不一致。 而在并发情况下存在写写并发和读写并发的情况同样也会导致缓存与数据库数据不一致。 写写并发有两种写入方式先操作数据库再操作缓存先操作缓存再操作数据库这里以先操作数据库再操作缓存为例 写线程写线程写数据库 写入100写数据库 写入200写缓存 写入200写缓存 写入100 读写并发 写线程读线程读缓存 缓存无值读数据库 读取200写数据库 写入100写缓存 写入100写缓存 写入200 解决方案 保证数据库和缓存的数据一致性有两种方式 更新缓存删除缓存 如果选择更新缓存无论是先更新缓存再更新数据库还是先更新数据库再更新缓存只要第二个更新操作除了问题就会出现缓存不一致问题了。 如果选择删除缓存如果是先先更新数据库再删除缓存那么如果删除缓存操作失败了那么还是会出现缓存不一致问题。如果是先删除缓存再更新数据库即使第二步更新数据库失败了由于缓存被删除了下一次读取则会从数据库中获取再写入缓存中不会出现缓存不一致问题。 所以应当采用先删除缓存再更新数据库的策略来保证缓存一致性 但是采用删除缓存的策略实际上就会放大了读写并发问题在高并发场景下同样会出现缓存不一致问题。为了解决这个问题可以使用延迟双删的方案在一定程度上解决。 延迟双删实际上就是在先删除缓存再更新数据库的基础上延时一小段时间再去删除缓存。如果真的出现了读写并发导致的缓存不一致问题延迟删除缓存的操作能够将旧的缓存值删掉从而解决数据不一致问题。但这种写法实际上是对错误的一个补偿措施并没有彻底地解决高并发下的缓存一致性问题。 如果业务上真的需要做到强一致性则只能使用分布式锁来控制了更新数据库和更新缓存的操作使用同一把分布式锁但是这样就与高并发没有啥关系了。 如果业务上只需要做到最终一致性的话使用先删缓存再写数据库或者是使用延迟双删就能实现了也可以借助中间件来实现数据库与缓存的数据一致性MySQL使用canal来同步但是引入新的中间件实际上又得考虑新的问题延迟双删针对绝大部分场景实际上就够用了所以这里就不展开讲了也没有在实际场景下使用过我不会
http://www.dnsts.com.cn/news/5445.html

相关文章:

  • 0基础学网站开发网站备案 法人
  • 网站子站怎么建设企业网站排行榜
  • wordpress 仿煎蛋网站关键词搜索排名优化
  • 做网站去什么公司咸鱼app引导页面设计模板
  • 湖北省建设交易协会网站硬件工程师需要学哪些
  • 网站关键词seo费用wordpress 表格处理
  • 2W网站建设的作用wordpress post link
  • 制作网站主题360建筑网一级消防工程师招聘
  • 网站dns服务360建筑网上怎么删除投递信息
  • 重庆专业网站建设首页排名微信管理平台
  • 网站建设分金手指排名十二肥城网站建设广州外地车牌
  • 网站建设远程培训淘宝流量网站
  • 莒南做网站网站海外推广平台
  • 哪个公司网站建设好韩国怎么出线
  • 一个网站如何做盈利贡井移动网站建设
  • 网站建设潮州wordpress 负载
  • php网站开发工程师任职要求新开网站
  • 网站建设之网页制作语言基础网站调用flash
  • 网站建设公司简介模板下载做关键词优化的公司
  • wordpress企业建站流程嘉兴seo网站优化
  • 外贸建站网站公司做网站软文怎么弄
  • 上市公司做家具网站盘锦网站建设优化
  • 学网站建设有用吗网站好友邀请链接生成 php
  • 哪里有工程做的网站wordpress是是什么技术
  • 室内设计公司职位整站seo外包
  • 哪个网站做简历移动网站 做优化
  • 怎么创建网站校园表白墙浙江商城网站建设
  • 天津网站建设是什么做网站公司促销海报
  • 免费推广网站58佛山网站开发哪家好
  • 什么网站做二维码比较好asp net做网站