Skip to content

Latest commit

 

History

History
6 lines (6 loc) · 1.15 KB

Redis缓存穿透问题及其解决方案.md

File metadata and controls

6 lines (6 loc) · 1.15 KB
  1. 布隆过滤器:使用布隆过滤器在缓存层进行数据预先过滤,将可能存在的数据放入布隆过滤器中。当请求到来时,先根据布隆过滤器判断是否存在于缓存中,避免直接查询数据库。
  2. 空值缓存:当查询结果为空时,也将该空结果进行缓存,设置较短的过期时间。这样下次再有相同的查询请求时,就可以从缓存中获取空结果,减少对数据库的频繁查询。
  3. 缓存雪崩处理:设置不同的过期时间或者使用分布式锁等机制,避免大量缓存同时失效导致的缓存雪崩问题,提高系统的稳定性。
  4. 热点数据预热:在系统启动或者运行期间,提前加载热门数据到缓存中,避免冷启动时出现缓存穿透的情况。
  5. 限流控制:对请求进行频率限制,通过限流算法(如令牌桶、漏桶等)控制请求的访问频率,防止恶意请求导致缓存穿透。
  6. **使用缓存标记:在缓存中存储数据是否存在的标记,如果查询结果为空,也将此标记缓存起来,下次查询时先检查标记,若不存在则直接返回空结果。