缓存问题
- 缓存穿透
原因:恶意攻击去查询数据库一定不存在的数据,对数据库造成压力,甚至压垮数据库
方案:使用特殊缓存空值标识对象不存在的情况、布隆过滤器(Bloom Filter)
- 缓存雪崩
原因:在某一个时间段,缓存集中过期,对数据库而言,就会产生周期性的压力波峰 方案:设置过期事件时候加随机因子,尽可能分散过期时间
- 缓存击穿 原因:缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多, 同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力
方案:设置热点数据永远不过期