缓存穿透
查询一个不存在的值时,在缓存系统内未命中,导致请求直接落到持久层数据库上。
缓存击穿
查询某一项数据(如在 redis 查询某一个key),但是这个时候缓存正好过期了,缓存没有命中,导致请求直接落到持久层数据库上。如活动系统里面查询活动信息,但是在活动进行过程中活动缓存突然过期了。
缓存雪崩
在高并发下,大批量的缓存key在同一时间失效,导致大量的请求落到数据库上,导致数据库宕机。
因此,雪崩是产生直接的实质的损失
常见解决方案
- 直接缓存NULL值
- 限流
- 缓存预热
- 分级缓存
- 缓存永远不过期
本着资源共享的原则,欢迎各位朋友在此基础上完善,并进一步分享,让我们的实现更加优雅。如果有任何疑问和需要进一步交流可以留言沟通
Testner创始人(testner.club) Sea