码迷,mamicode.com
首页 > 其他好文 > 详细

缓存三大问题

时间:2019-02-02 18:55:32      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:故障   穿透   热点   频繁   数据   数据库   比较   大量   lru   

1. 缓存穿透 :

  查询一个一定不存在的数据。因为缓存中无该数据数据,所以要查询数据库。如果频繁请求不存在的数据,因请求都会到达数据库层而导致db瘫痪。

  解决方案:

  缓存查询的空值,但设定比较短的失效时间。

2. 缓存雪崩:

  所有的缓存同一时间失效,则所有的请求都会发送到数据库层,db可能无法承受如此大的压力导致崩溃。

  解决方案:

  从某个适当的值域中随机一个时间作为失效时间。

3. 缓存击穿

  热点的缓存失效,此时可能依然有大量的请求,这些请求都会发送到db层从而引起故障。

  解决方案:

  热点可能随着时间的变化而变化,针对固定的数据进行特殊缓存是不行的。可以用LRU(Least Recently used, 最近最少使用)算法。

  

 

缓存三大问题

标签:故障   穿透   热点   频繁   数据   数据库   比较   大量   lru   

原文地址:https://www.cnblogs.com/yintingting/p/10348823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!