缓存雪崩
概述:
缓存在某个时间大量失效,导致数据库访问压力急剧增大,像雪崩一样。因此发生了缓存雪崩。
解决方案:
对缓存设置一个随机的过期时间,这样就可以保证缓存不会在同一时间失效而大面积直接访问数据库。
缓存穿透
概述:
而用户不断发起请求,缓存和数据库中都没有此数据。因此发生了缓存穿透。
解决方案:
对空值缓存,如果一个查询返回的数据为空,我们仍然把这个空结果进行缓存。
缓存击穿
概述:
缓存中没有但数据库中有此数据。由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。因此发生了缓存击穿。
解决方案:
使用定时任务定时刷新缓存数据与过期时间,保证缓存数据存在。