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

缓存穿透 击穿 雪崩

缓存穿透:不存在的数据请求打到数据库,返回时并不会存入缓存,对数据库造成压力

解决方案

  1. 缓存null值
    优点:简单易实现
    缺点:可能造成缓存和数据库数据不一致,消耗内存

  2. 布隆过滤器
    优点:内存友好,缓存没有多余的key
    缺点:实现复杂,容易误判


击穿:热点数据缓存过期,大量请求打到数据库

解决方案

  1. 逻辑过期:不设置过期时间,缓存时添加一个过期的字段,下次访问时如果过期则返回旧数据,然后重新查数据库
    优点:性能比较好
    缺点:数据不一致

  2. 互斥锁:先用setnx设置一个互斥锁,开启新线程查数据库重建缓存,操作成功后再返回数据。
    优点:数据强一致
    缺点:性能差


雪崩:大量缓存数据同时过期,大量请求打到数据库

解决方案

  1. 原有过期时间基础上增加一个随机过期时间

相关文章:

  • 【分布式文件系统】FastDFS
  • 基于非线性规划的电动汽车充电站最优布局
  • YOLOv11改进 | Conv/卷积篇 | 2024 ECCV最新大感受野的小波卷积WTConv助力YOLOv11有效涨点
  • Python 和 matplotlib 保存图像时,确保图像的分辨率和像素符合特定要求(如 64x64),批量保存 不溢出内存
  • 国产化Word处理控件Spire.Doc教程:使用 Python 创建 Word 文档的详细指南
  • maven添加自己下载的jar包到本地仓库
  • 「金融证券行业」 如何搭建自己的研发智能管理体系?
  • 【人工智能】低代码-模版引擎
  • 二十三、面向对象底层逻辑-BeanDefinitionParser接口设计哲学
  • 现代生活下的创新健康养生之道
  • Idea 配合 devtools 依赖 实现热部署
  • VSCode+EIDE通过KeilC51编译,使VSCode+EIDE“支持”C和ASM混编
  • Idea如果有参数,怎么debug
  • facebook开源Triton编写GPU内核的编程模型速读:KernelLLM
  • spring.factories详解
  • AI是否会取代人类?浔川问答①
  • docker安装es连接kibana并安装分词器
  • PTA刷题笔记3(微难,有详解)
  • 【瑞数3代】药监评审中心逆向分析 | 后缀MmEwMD参数
  • JDBC-java操作数据库
  • 深圳市建设注册中心网站/seo咨询师
  • 如何把地图放到网站上/如何优化网络速度
  • 自己做的网站外网访问/产品关键词怎么找
  • 广州网站建设怎么样/网络营销的策划方案
  • 网页开发环境一般写什么/seo策略工具
  • 选择网站建设公司/武汉seo结算