缓存穿透
缓存和数据库都没有的数据,eg.订单号-1。量大时会导致数据库压力过大。
解决办法:
- 增加合法性校验。
- 使用布隆过滤器,可以判断出有没有。
缓存异常结果
缓存击穿
在缓存失效时被请求,如果量大,会导致数据库压力过大
解决办法:- 热点数据永不过期
数据为空时,加互斥锁,只允许一个请求击穿,击穿完缓存就有了(这个锁应该设成有限次自旋)
缓存雪崩
大量数据同时过期,请求量大会导致数据库压力过大
解决办法:- 热点数据永不过期
- 过期时间加随机值
- 热点数据分散到不同分片,避免宕机引起雪崩
- 两层缓存
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。