缓存穿透、缓存击穿、缓存雪崩

1、 缓存穿透

  • 原因:总是查询不存在的数据,当大量请求不存在的数据时,最终请求会落在数据库上会给数据库带来很大压力。
  • 解决办法:设置返回空对象,而不是返回null,这样请求不会大量落在数据库上。

2、缓存击穿

  • 原因:大量请求访问同一份热点数据,刚好遇到热点数据即将过期,大量请求最终落在数据库上。
  • 解决办法:1、设置热点数据永不过期 2、加锁操作,当一个线程访问数据之后重建缓存。

3、缓存雪崩

  • 原因:1、可能是大量请求刚好遇到大量的key同时过期 2、可能是Redis服务器宕机
  • 解决办法:1、给缓存数据过期时间附加随机值,避免大量的数据同时失效 2、构建高可用的Redis集群,避免单机宕机导致服务不可用。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容