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

缓存常见问题

缓存常见问题

缓存穿透

概念:
查询缓存中没有,数据库也没有的数据,大量的请求都穿透了缓存层直达数据库,导致数据库因压力过大而宕机。
本质是一种人为攻击手段

解决方案:

  • 数据库不存在数据时,存放一个临时数据到缓存中

  • 布隆过滤器

    在查询缓存时,会先经过布隆过滤器,根据Redis的Key进行Hash并取模。
    根据取值后对应的位数组下标上值判断:
    都是1,则说明该数据在缓存中有可能存在,去缓存中查询
    至少有一个为0,表示该数据在缓存中不存在,直接返回

缓存击穿

概念: 某一个热点数据的key突然过期,造成大量请求直达数据

解决方案:

  • 数据永不过期(定时任务,凌晨流少的时候更新缓存)
  • 接口限流或降级
  • 分布式锁
  • 缓存预热

雪崩

概念: 缓存中在同一个时间点有大量的key同时过期,请求查询缓存中没有,直达数据库

解决方案:

  • 分布式锁
  • 热点数据永不过期
  • 随机过期时间

缓存一致性

缓存一致性问题,也叫双写一致性问题: 写数据库+写缓存 如何做到同步

  • 强一致性 上锁 性能差
  • 弱一致性 最终一致性
    • 先更新数据库,再删除缓存
    • 延迟双删 删除-写入-延迟片刻再删除
    • Canal+MQ
http://www.gsyq.cn/news/8255.html

相关文章:

  • ctfshow 电子取证
  • 插入排序与希尔排序 - 实践
  • IIS 部署 asp.net core 实用的方案时,出现500.19、500.31问题的解决方案
  • 嘉立创常用快捷键
  • 02020402 EF Core基础02-EF Core数据的增删改查
  • 图解支付系统账务系统核心设计 - 智慧园区
  • 解码C语言结构体
  • 软件工程学习日志2025.9.19
  • ECT-OS-JiuHuaShan 框架元推理,是人类良医与福音
  • upload-labs全通关
  • 操作系统,知识体系一共包含哪些部分? - 实践
  • vscode 下载 VS Code Server 卡住(无需手动下载)
  • 查询本地IPV6 地址
  • 实用指南:Android中handler机制
  • 缺失的第一个正数-leetcode
  • 实用指南:设计模式:建造者模式
  • 04_Redis凭啥这么牛:核心特性剖析
  • BGP路由属性与选路-1
  • 【CV】图像超分辨率的一些基础概念
  • Python面试题及详细答案150道(116-125) -- 性能优化与调试篇 - 实践
  • 物联网摄像头硬件设计秘籍:低成本与低功耗的平衡之道
  • 关于网络社交
  • 【c++进阶系列】:万字详解AVL树(附源码实现) - 教程
  • 【JAVA接口自动化】JAVA如何读取Yaml文档
  • 完整教程:uni-app 常用钩子函数:从场景到实战,掌握开发核心
  • 总结RocketMQ中的常见问题
  • 4G/Wi-Fi/以太网三网合一,智能融合通信实战案例集
  • 关于介绍自己的第一篇随笔
  • Backblaze上如何传大文件
  • BLE蓝牙配网双模式实操:STA+SoftAP技术原理与避坑指南