缓存问题

缓存常用架构

缓存问题

缓存穿透

定义:访问一个不存在的key,缓存和数据库中均无需要查询的数据
解决方案:

  1. 接口层增加数据有效性的校验
  2. 缓存中和数据库中均不存在的数据也更新至缓存中,value记为null,但是缓存时间不宜过长
  3. 布隆过滤器

缓存击穿

定义:缓存过期的一瞬间大量请求,会将查询压力转移至数据库
解决方案:

  1. 热点数据永不过期
  2. 互斥锁

缓存雪崩

定义:大量的缓存设置同一时间过期,大量请求会直接转移至数据库
解决方案:
缓存过期时间随机设置
热点数据永不过期