缓存雪崩,缓存穿透,缓存预热,缓存算法.docxVIP

缓存雪崩,缓存穿透,缓存预热,缓存算法.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
缓存雪崩,缓存穿透,缓存预热,缓存算法 qianshangding 2021-12-15 缓存雪崩 缓存雪崩可能是由于数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致全部恳求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。 处理思路: 1,接受加锁计数,或者使用合理的队列数量来避开缓存失效时对数据库形成太大的压力。这种方法虽然能缓解数据库的压力,但是同时又降低了系统的吞吐量。 2,分析用户行为,尽量让失效时间点均匀分布。避开缓存雪崩的消灭。 3,假如是由于某台缓存服务器宕机,可以考虑做主备,比如:Redis主备,但是双缓存涉及到更新事务的问题,update可能读到脏数据,需要好好处理。 缓存穿透 缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库中查询。 处理思路: 1,假如查询数据库也为空,直接设置一个默认值存放到缓存,这样其次次到缓冲中猎取就有值了,而不会连续访问数据库,这种方法最简约粗暴。 2,依据缓存数据Key的规章。例如我们公司是做机顶盒的,缓存数据以Mac为Key,Mac是有规章,假如不符合规章就过滤掉,这样可以过滤一部分查询。在做缓存规划的时候,Key有肯定规章的话,可以实行这种方法。这种方法只能缓解一部分的压力,过滤和系统无关的查询,但是无法根治。 3,接受布隆过滤器,将全部可能存在的数据哈希到一个足够大的BitSet中,不存在的数据将会被拦截掉,从而避开了对底层存储系统的查询压力。关于布隆过滤器 大并发的缓存穿透会导致缓存雪崩。 缓存预热 单机web系统情况下比较简约。 处理思路: 1,直接写个缓存刷新页面,上线时手工操作下。 2,数据量不大,可以在WEB系统启动的时候加载。 3,搞个定时器定时刷新缓存,或者由用户触发都行。 分布式缓存系统,如Memcached,Redis,比如缓存系统比较大,由十几台甚至几十台机器组成,这样预热会简单一些。 处理思路: 1,写个程序去跑。 2,单个缓存预热框架。 缓存预热的目标就是在系统上线前,将数据加载到缓存中。 缓存算法 FIFO算法:First in First out,先进先出。准绳:一个数据最先进入缓存中,则应当最早淘汰掉。也就是说,当缓存满的时候,应当把最先进入缓存的数据给淘汰掉。 LFU算法:Least Frequently Used,最不经常使用算法。 LRU算法:Least Recently Used,近期最少使用算法。 LRU和LFU的区分。LFU算法是依据在一段时间里数据项被使用的次数选择出最少使用的数据项,即依据使用次数的差异来打算。而LRU是依据使用时间的差异来打算的。

文档评论(0)

duanbingbing + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档