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

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

作者: 张某某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