缓存穿透、缓存雪崩、缓存击穿
缓存穿透
对不存在的key进行高并发访问,导致数据库压力瞬间增大,这就叫做缓存穿透。
解决方案:对不存在的key也做一个缓存,内容为空,生存时间几秒即可
缓存雪崩
当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候进行高并发访问,也会给后端系统(比如DB)带来很大压力。
解决方案:对不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀,避免集体失效。
缓存击穿
缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。
解决方案:添加锁或者采用队列,对不存在的key做缓存