美文网首页
缓存穿透、缓存击穿、缓存雪崩

缓存穿透、缓存击穿、缓存雪崩

作者: 张某某xyz | 来源:发表于2021-08-12 22:35 被阅读0次

    20210813

    概述

    这3种情况的后果都是:缓存没起到缓存的作用,大量查询的请求还是到达了数据库

    缓存穿透

    查一个不存在的数据,比如id=-1的数据,并且发大量的请求查该数据,由于该数据缓存中没有,这些请求必然会到达数据库

    解决:

    1. 从数据库中没查到的数据,缓存成key-null(最简单的办法)
    2. 采用布隆过滤器(上例中将所有id放入布隆过滤器,查数据库前先用布隆过滤器判断下该id是否存在)

    缓存击穿

    大量的请求查询id=1234的数据时,突然该数据的缓存过期,这些大量的请求也必然会到达数据库

    解决:

    1. 热点缓存永不过期

    缓存雪崩

    突然90%的缓存同时过期,这些大量的请求也必然会到达数据库
    一大片缓存同时过期,如同雪崩一样

    解决:

    1. 缓存的过期时间设置成随机的

    总结

    缓存雪崩是针对大量key,缓存穿透和缓存击穿是针对个别key

    相关文章

      网友评论

          本文标题:缓存穿透、缓存击穿、缓存雪崩

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