架构师(二) 缓存

Posted by YaPi on July 2, 2020

缓存问题

  • 缓存穿透

原因:恶意攻击去查询数据库一定不存在的数据,对数据库造成压力,甚至压垮数据库

方案:使用特殊缓存空值标识对象不存在的情况、布隆过滤器(Bloom Filter)

  • 缓存雪崩

原因:在某一个时间段,缓存集中过期,对数据库而言,就会产生周期性的压力波峰 方案:设置过期事件时候加随机因子,尽可能分散过期时间

  • 缓存击穿 原因:缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多, 同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力

方案:设置热点数据永远不过期