当前位置: 首页 > article >正文

Redis篇--实际应用篇1--缓存穿透(布隆过滤器)

(1)、概述
缓存穿透是指客户端请求的数据既不在Redis缓存中,也不在数据库中。换句话说,缓存和数据库中都不存在该数据,但客户端仍然发起了查询请求。
这种情况下,缓存无法命中,请求会直接穿透到数据库,而数据库中也找不到相应的数据,最终返回null或者空结果。如果这种请求量非常大的话,不仅会浪费网络带宽、CPU和I/O等资源,还会额外增大数据库的压力,甚至会导致数据库崩溃。

(2)、具体场景
1、恶意攻击或爬虫
某些恶意用户或爬虫可能会故意构造大量不存在的键(如随机生成的 ID),频繁请求这些不存在的数据,导致缓存和数据库的负载增加。
2、业务逻辑问题
某些业务场景下,可能存在无效的请求,导致客户端请求了系统中不存在的数据。
3、缓存未命中
正常情况下,如果数据存在但没有被缓存,应该从数据库中加载并更新缓存。但如果数据本身在数据库中也不存在,则会导致缓存穿透。


http://www.kler.cn/a/442901.html

相关文章:

  • 服务器登陆后有java变量
  • seo泛目录(seo泛目录程序)
  • C++实现设计模式---单例模式 (Singleton)
  • Vue-Cli
  • HTTP 入门:认识网络通信基础
  • 时序数据库InfluxDB—介绍与性能测试
  • MySQL中in和exists的使用场景
  • Python 中使用 pymysql 操作 MySQL 数据库的基础指南
  • 2_使用 HTML5 Canvas API (1) --[HTML5 API 学习之旅]
  • Java毕设项目:基于Springboot生鲜销售商城网站系统设计与实现开题报告
  • Spring Boot 3.X:Unable to connect to Redis错误记录
  • [LeetCode-Python版]142. 环形链表 II
  • Springboot3.x 进阶-配置和序列化
  • Android绘图Path基于LinearGradient线性渐变,Kotlin(1)
  • 免费开源了一个图床工具 github-spring-boot-starter
  • 汽车发动机电控系统-【传感器】篇
  • 实践环境-docker安装mysql8.0.40步骤
  • elasticsearch 使用enrich processor填充数据
  • 代码随想录算法训练营第五十天 | 图 | 并查集
  • fpga系列 HDL:Quartus II PLL (Phase-Locked Loop) IP核 (Quartus II 18.0)
  • Long类型的数据在网络传输的过程中丢失精度
  • Python-基于Pygame的小游戏(滑雪大冒险)(一)
  • 社交电商新风口:短视频交友+自营商城源码运营
  • filecoin boost GraphQL API 查询
  • AI开发 - 用GPT写一个GPT应用的真实案例
  • 在 Webpack 中Plugin有什么作用?Plugin是什么?