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

缓存常见问题

缓存常见问题

缓存穿透

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

解决方案:

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

  • 布隆过滤器

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

缓存击穿

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

解决方案:

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

雪崩

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

解决方案:

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

缓存一致性

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

  • 强一致性 上锁 性能差
  • 弱一致性 最终一致性
    • 先更新数据库,再删除缓存
    • 延迟双删 删除-写入-延迟片刻再删除
    • Canal+MQ
http://www.hskmm.com/?act=detail&tid=9970

相关文章:

  • ctfshow 电子取证
  • Hello,World!
  • 最新IDEA 2025 专业版破解永久破解教程(附资源)intellij IDEA
  • AtCoder ABC423F - Loud Cicada 题解 容斥原理
  • 1756:八皇后
  • 矩阵置零-leetcode
  • 嘉立创常用快捷键
  • 02020402 EF Core基础02-EF Core数据的增删改查
  • conda 无法安装依赖 CondaHTTPError: HTTP 000 CONNECTION FAILED for url: tsinghua tencentaliyun
  • 牛客刷题-Day2
  • 图解支付系统账务系统核心设计 - 智慧园区
  • vulnhub(持续更新)
  • 小爱同学连接电脑进行交互 教程
  • 网络流初步浅谈:EK与Dinic
  • 解码C语言结构体
  • 已完成今日求所有满足长为 $a$ 的和为 $b$ 的按位或为 $c$ 的非负整数序列的异或和的异或和大学习
  • Hello Yqc!
  • 2025.9.19——卷9-10选择
  • 软件工程学习日志2025.9.19
  • ECT-OS-JiuHuaShan 框架元推理,是人类良医与福音
  • upload-labs全通关
  • SAPO去中心化训练:多节点协作让LLM训练效率提升94%
  • mybatis-plus学习笔记
  • 区间问题
  • 操作系统,知识体系一共包含哪些部分? - 实践
  • vscode 下载 VS Code Server 卡住(无需手动下载)
  • 查询本地IPV6 地址
  • 解决 Ubuntu 25.04 下 make menuconfig 报 ncurses 错误的问题 - 指南
  • web359
  • web360