缓存穿透
缓存 穿透
2023-06-13 09:17:09 时间
缓存穿透
当使用错误或者不存在的账号进行登录时,因为账号不存在,所以Redis里不会存入缓存数据,但程序实际上还是会每次都查询数据库,导致数据库压力仍然过大。读写速度越来越慢,甚至宕机,这属于系统漏洞。
看起来,使用了Redis,但实际上这种被错误数据攻击的情况下,Redis失去了缓存的意义,称为缓存穿透。
解决缓存穿透
第一次从数据库查询不到数据时,仍然把这个空结果缓存,不过过期时间一般不超过五分钟。
// 只 new 实例但不设置任何属性,相当于一个空对象
userDO = new UserDO();
redisTemplate.opsForValue().set(userName, userDO, 5, TimeUnit.MINUTES);
当用户第二次访问时,无论账户是否正确,Redis都缓存了数据,避免再次查询数据库。而缓存住的错误账号,因为没有属性值,实际不会执行登录。
相关文章
- 如何解决缓存雪崩、缓存穿透和缓存击穿?
- 缓存穿透、缓存雪崩、缓存击穿 问题解决思路
- 什么是缓存雪崩、击穿、穿透?
- php解决redis的缓存雪崩,缓存穿透,缓存击穿的问题
- Redis 搞懂缓存击穿、缓存穿透、缓存雪崩 产生原因及产线常用的解决方案
- 3分钟带你掌握缓存穿透、缓存雪崩、缓存击穿,以及应对方案!
- 如何了解CPU的三级缓存?
- Redis缓存穿透/击穿工具类的封装
- 详解Redis缓存穿透/击穿/雪崩原理及其解决方案
- Redis使用元素删除的布隆过滤器来解决缓存穿透问题
- 缓存穿透,缓存击穿,缓存雪崩解决方案分析详解架构师
- 布隆过滤器的方式解决缓存穿透问题详解架构师
- 禁用IE缓存详解编程语言
- 快速安装Linux环境下的APC缓存系统(linux安装apc)
- 使用Redis缓存高效存储图片(redis可以缓存图片)
- 提升SQL Server表数据检索性能的表缓存技术(sqlserver表缓存)
- 使用Redis实现高效缓存策略(如何用redis实现缓存)
- 专业加速多线程操作Redis缓存提升性能(多线程操作redis缓存)
- 移动端本地缓存无缝同步Redis(本地缓存同步redis)
- 解决Redis面试题中缓存穿透问题(redis面试题缓存穿透)
- 深入浅出如何使用Redis集群清除缓存(redis集群如何清缓存)
- Redis缓存技术有效规避缓存穿透问题(redis 避免缓存穿透)
- Redis缓存简单而有趣的集成方式(redis缓存集成专栏)
- 穿透Redis,保护你的缓存(redis缓存防止穿透)
- 更新效率利用Redis设置多线程过期缓存(redis过期 多线程)
- 借助Redis缓存轻松提升网站访问量(redis缓存网站访问量)
- 防护缓存穿透实现Redis缓存穿透优化(redis缓存穿透应用)
- 解决Redis缓存穿透与雪崩安全保障你的网站(redis缓存穿透和雪崩)
- 解决Redis缓存穿透问题的图片优化方案(redis缓存穿透图片)
- Redis缓存穿透与血崩之间的防御手段(redis缓存穿透和血崩)
- 缓解Redis缓存实现整张表的压力(redis缓存整个表)
- Redis缓存把你的网站访问速度提升到极致(redis缓存帮助类)