Redis穿透以及解决方法

Redis穿透是指当一个请求在缓存中和数据库都找不到对应的数据时,导致每次请求都要查询数据库,从而产生了大量的无效数据库查询,大量无效的数据库查询会导致数据库负载增加,降低数据库的性能和响应能力甚至宕机的风险。

这种情况通常发生在攻击者恶意请求一个不存在的缓存键,以此来绕过缓存并直接访问数据库

为了防止Redis穿透攻击,可以采取以下几个措施:

  1. 增加布隆过滤器:在查询前,使用布隆过滤器进行预检查,如果缓存键在布隆过滤器中判断为不存在,直接返回结果,避免无效的数据库查询。

  2. 缓存空值:如果查询结果为空,可以将空结果也缓存起来一段时间,避免重复的数据库查询。一般来说,空值缓存的时间不应该太长,一般设置适当的缓存时间,避免数据更新导致缓存的不一致性和内存消耗

相关推荐
IT_Octopus12 分钟前
从一个应用开发者的角度,搞懂大数据查询的完整链路
java·大数据·数据库
Htr_27 分钟前
Creem 2.0 使用指南:面向 AI 构建时代的资金平台
android·数据库·人工智能·ui·photoshop
我是大猴子32 分钟前
reids的数据结构的应用场景
数据库
螺蛳粉 螺蛳粉1 小时前
mysql的备份与恢复
linux·运维·数据库·mysql
艾醒(AiXing-w)2 小时前
LangChain 1.0 智能体开发(三):Agent 记忆管理——从短期对话到跨会话长期记忆
数据库·人工智能·langchain
MSTcheng.2 小时前
KES 进了 K8s 之后运维归谁管?
数据库
Wang's Blog2 小时前
Java 接入Redis: Redis下载与源码编译安装
java·服务器·redis
知识的搬运工旺仔2 小时前
CREATE INDEX CONCURRENTLY:线上建索引不阻塞 DML 的代价与坑
数据库·后端·sql
guo_wen_qiang2 小时前
mysql中有哪些日志
数据库·mysql