-
缓存穿透
- 定义
业务系统访问压根就不存在的数据,就称为缓存穿透。
- 危害
如果海量请求查询压根就不存在的数据, 那么这些请求都会落到数据库中, 数据库压力剧增,可能会导致系统崩溃
- 解决
(1)缓存空数据 (2)BloomFilter:它需要在缓存之前再加一道屏障,里面存储目前数据库中存在的所有key
-
缓存雪崩
- 定义
缓存因某种原因发生了宕机,那么原本被缓存抵挡的海量查询请求就会像疯狗一样涌向数据库。 此时数据库如果抵挡不了这巨大的压力,它就会崩溃。这就是缓存雪崩
- 解决
(1)使用缓存集群,提高缓存的高可用性 (2)使用防雪蹦的软件 会监控请求的失败率 当达到与设置时就会 熔断、降级、限流
-
热点数据集中失效
- 定义
一些请求量极高的热点数据而言,一旦过了有效时间,此刻将会有大量请求落在数据库上,从而可能会导致数据库崩溃
- 解决
使用缓存自带的锁机制,当第一个数据库查询请求发起后,就将缓存中该数据上锁; 此时到达缓存的其他查询请求将无法查询该字段,从而被阻塞等待;当第一个请求完成数据库查询,并将数据更新值缓存后,释放锁;此时其他被阻塞的查询请求将可以直接从缓存中查到该数据
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。