缓存穿透
概念
redis和数据库存不存在该数据,无法通过查询获取返回值
解决方案
1.将返回的null值作为结果缓存起来,并设置过期时间从而更新数据
2.使用布隆过滤器来过滤不存在的数据
缓存击穿
概念
高并发查询某数据,而缓存过期,大量数据查询打到数据库上
解决方案
1.设置热点数据永不过期
2.加缓存锁,同一时间只允许一个线程去查询热点数据
缓存雪崩
概念
缓存大批量失效或Redis宕机,大批量查询落到数据库上
解决方案
1.配置Redis集群,提升高可用性
2.限流降级,同一时间只允许指定范围内的线程量
3.数据预热分散过期时间:预先访问热点数据,或过期时间添加随机数,避免同一时间大批量数据过期
布隆过滤器
概念
是一个很长的二进制向量和一系列随机映射函数。
特征
可以判断某一个数据一定不存在,但不能判断数据是否一定存在。