技术名词:缓存穿透、击穿和雪崩介绍和解决方案
发布日期:2021-06-30 21:30:22 浏览次数:2 分类:技术文章

本文共 326 字,大约阅读时间需要 1 分钟。

缓存穿透

描述:请求查询在缓存中和数据库中都没的数据,导致全部请求到达数据库,一般都恶意攻击。

解决办法:

  • 验证key的合法性,减少没必要的查询;
  • 对于数据库中没有的数据key,可以在缓存中存储value为null的数据,并设置较短的过期时间,防止恶意请求。

缓存击穿

描述:大量请求同时查询缓存中某个已过期的数据,导致全部请求到达数据库。

缓存雪崩

描述:当缓存中某个时间点大量数据缓存失效,导致全部请求达到数据库。

解决办法:缓存过期时间避免在同一个时间点。

通用解决方案:

  1. 热点数据缓存永不过期,可以通过异步修改进行缓存更新。
  2. 回源查询是用互斥锁,只允许一个线程进行数据库查询,其他查询sleep一段时间后再次查询缓存即可。

多重方案可以组合使用

转载地址:https://lizz6.blog.csdn.net/article/details/102965137 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux中IO机制select、poll、epoll的区别
下一篇:JDK源码:JUC之AbstractQueuedSynchronizer(AQS)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月06日 20时38分11秒