技术名词:缓存穿透、击穿和雪崩介绍和解决方案
发布日期:2021-06-30 21:30:22
浏览次数:2
分类:技术文章
本文共 326 字,大约阅读时间需要 1 分钟。
缓存穿透
描述:请求查询在缓存中和数据库中都没的数据,导致全部请求到达数据库,一般都恶意攻击。
解决办法:
- 验证key的合法性,减少没必要的查询;
- 对于数据库中没有的数据key,可以在缓存中存储value为null的数据,并设置较短的过期时间,防止恶意请求。
缓存击穿
描述:大量请求同时查询缓存中某个已过期的数据,导致全部请求到达数据库。
缓存雪崩
描述:当缓存中某个时间点大量数据缓存失效,导致全部请求达到数据库。
解决办法:缓存过期时间避免在同一个时间点。
通用解决方案:
- 热点数据缓存永不过期,可以通过异步修改进行缓存更新。
- 回源查询是用互斥锁,只允许一个线程进行数据库查询,其他查询sleep一段时间后再次查询缓存即可。
多重方案可以组合使用
转载地址:https://lizz6.blog.csdn.net/article/details/102965137 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月06日 20时38分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux环境之gitlab搭建
2019-05-01
Lnmp环境搭建之php-7.2.19安装配置
2019-05-01
Lnmp环境搭建之mysql-5.5.49的安装配置
2019-05-01
Lnmp环境搭建之nginx-1.14.1的安装配置
2019-05-01
Lnmp环境搭建之mysql-5.6.16的安装配置
2019-05-01
Linux-rar命令安装使用
2019-05-01
Lnmp环境搭建之mysql-5.6.16的安装配置【2】
2019-05-01
Linux 解决mysql函数无法连数据库的问题
2019-05-01
Linux - PHP安装redis扩展
2019-05-01
《增长黑客》(肖恩·艾利斯)学习笔记——第一部分 方法
2019-05-01
《增长黑客》(肖恩·艾利斯)学习笔记——第二部分 实战
2019-05-01
冒泡排序及优化(JAVA算法)
2019-05-01
九九乘法表(Java,JavaScript)
2019-05-01
Mysql学习笔记(9):数据类型和约束
2019-05-01
Mysql学习笔记(10):事务、视图
2019-05-01
JDBC学习笔记(1):JDBC概述
2019-05-01