一、击穿
原因:一个高并发并且缓存重建业务复杂的key突然失效了(重要的key突然失效)。
解决办法:互斥锁、逻辑过期
简述:数据库里有该id的数据,但是redis中的该数据已经失效了。
二、穿透
原因:数据库和redis中没有该数据,用户多次发起该请求会穿透过redis,直接打到数据库。
解决办法:请求的id到达数据库拿到数据后判断是否为空,为空时把redis中添加该id的值,并设置为空字符串(下次在请求就是空字符,并不会打到数据库)
简述:数据库中没有该id的数据,用户疯狂发请求。
三、雪崩
原因:redis宕机、大量key同时失效,所有请求打到数据库。
解决办法:主从分离、多级缓存
redis免费学习课程: