美文网首页
缓存常用的解决方案

缓存常用的解决方案

作者: 长征路上的IT男 | 来源:发表于2018-09-15 10:59 被阅读0次

    缓存穿透

    概念

    访问一个不存在的key,缓存不起作用。请求会穿透到DB,访问量大时DB会挂掉.

    解决方案

    1.采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤

    2.访问key未在db查询到值,也将空值写进缓存,设置较短的过期时间

    缓存雪崩

    概念

    大量的key设置了相同的过期时间,导致在缓存同一时间全部失效,造成db瞬间请求量过大,压力陡增,引起雪崩

    解决方案

    可以给key设置过期时间加上一个随机值过期时间,使得每个key分散的失效,不会集中同一时刻失效

    缓存击穿

    概念

    一个缓存的key,在缓存过期的那一刻,同时有大量请求,这些请求都会穿透到db

    解决方案

    在访问key之前,采用setnx(Set if not exists)来设置另外一个短期key锁住当前key的访问,访问结束再删除该短期key

    相关文章

      网友评论

          本文标题:缓存常用的解决方案

          本文链接:https://www.haomeiwen.com/subject/ucpzgftx.html