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

缓存穿透 击穿 雪崩

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

解决方案

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

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


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

解决方案

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

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


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

解决方案

  1. 原有过期时间基础上增加一个随机过期时间
http://www.xdnf.cn/news/8456.html

相关文章:

  • 【Pandas】pandas DataFrame sum
  • 【Java高阶面经:消息队列篇】23、Kafka延迟消息:实现高并发场景下的延迟任务处理
  • 《全志T3》_嵌入式产品Ubuntu操作系统启动详解一
  • Android.mk解析
  • Web前端开发: 什么是JavaScript?
  • 垒球百科全书·棒球1号位
  • 无法访问org.springframework.boot.SpringApplication
  • Elastic:什么是 DevOps?
  • Chrome中http被强转成https问题
  • Git 分支管理:merge、rebase、cherry-pick 的用法与规范
  • Python应用“面向对象”人力系统
  • 深入解析自然语言处理中的语言转换方法
  • Docker Volumes 还原指南
  • java Sm2SignWithSM3转php
  • 网络学习-TCP协议(七)
  • 跨域解决方案之JSONP
  • YOLOV11改进策略【最新注意力机制】CVPR2025局部区域注意力机制LRSA-增强局部区域特征之间的交互
  • 使用DDR4控制器实现多通道数据读写(十三)
  • DAO模式
  • DEBUG设置为False 时,django默认的后台样式等静态文件丢失的问题
  • 新能源汽车滑行阻力参数计算全解析:从理论推导到MATLAB工具实现
  • macOS 安装 PostgreSQL
  • 基于大模型的股骨干骨折全周期预测与诊疗方案研究报告
  • 可视化大屏全屏后重载echarts图表
  • JUC并发编程1
  • MyBatis 笔记:parameterType、resultType 与 resultMap 的区别详解
  • Android 网络全栈攻略(四)—— 从 OkHttp 拦截器来看 HTTP 协议一
  • 146. LRU Cache
  • Anthropic公司近日发布了两款新一代大型语言模型Claude Opus 4与Claude Sonnet 4
  • 矩阵:线性代数在AI大模型中的核心支柱