Redis穿透以及解决方法

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

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

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

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

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

相关推荐
杜子不疼.5 分钟前
【C++ AI 大模型接入 SDK】 - 环境搭建
开发语言·数据库·c++
qq_283720057 分钟前
Milvus 向量数据库全链路优化实战教程
数据库·milvus
m0_702036537 分钟前
CSS如何兼容新旧方案结合响应式容器查询
jvm·数据库·python
ClouGence13 分钟前
我们做了个疯狂的决定,把 CloudDM 全部开源了
数据库·后端·mysql
努力努力再努力wz21 分钟前
【Qt入门系列】深入理解信号与槽:从事件响应到自定义信号机制
c语言·开发语言·数据结构·数据库·c++·qt·mysql
2501_9219392641 分钟前
Redis
数据库·redis·缓存
秋91 小时前
Windows 环境下 Redis 部署详解:从选型、安装到生产级配置与运维
运维·windows·redis
星栈1 小时前
CQRS 双库架构:给事件存储单独开一个数据库,到底值不值?
数据库·全栈
手握风云-1 小时前
Redis:不只是缓存那么简单(十一)
redis·缓存
YF02111 小时前
深度解构Android OkDownload断点续传
android·数据库·okhttp