缓存穿透和缓存雪崩

缓存穿透

  缓存穿透是查询一个不存在的数据,由于不存在,所以缓存里面没有,那么缓存查不到,就走查询数据库,由于数据库里面也不存在,那么也不写入缓存,导致这个不存在的数据每次都要到数据库中查询,导致缓存穿透。
  方案:简单利落的方式:就是把这个查询返回的空数据缓存下来,过期时间很短就好了。

缓存雪崩

  就是缓存就是集中在一段时间内全部失效,发生了大量的缓存穿透,导致大量的查询走到了数据库,严重时可能导致数据库宕机,从而引发连锁反应,导致整个系统崩溃了。(可以采用熔断模式来熔断。)
  方案:在缓存失效后通过加锁来控制线程数量。或者设置一个算法,让这个key的过期时间尽可能均匀。

缓存预热

  就是在系统上线后,将相关数据直接加载到缓存系统中去,这样可以避免,当用户请求时再去加载相关数据。

猜你喜欢

转载自www.cnblogs.com/donghang/p/9233744.html
今日推荐