avatar
文章
100
标签
32
分类
5
首页
页面
  • 归档
  • 标签
  • 分类
  • 图库
  • 说说
  • 示例
文档
  • 🚀 快速开始
  • 📑 主题页面
  • 🛠 主题配置
  • ⚔️ 标签外挂
  • ❓ 主题问答
  • ⚡️ 进阶教程
  • ✨ 更新日志
留言板
语言
  • English
  • 中文
彬子的Blog
搜索
首页
页面
  • 归档
  • 标签
  • 分类
  • 图库
  • 说说
  • 示例
文档
  • 🚀 快速开始
  • 📑 主题页面
  • 🛠 主题配置
  • ⚔️ 标签外挂
  • ❓ 主题问答
  • ⚡️ 进阶教程
  • ✨ 更新日志
留言板
语言
  • English
  • 中文

性能优化

缓存穿透,雪崩,击穿
发表于2025-10-25|数据库
缓存穿透 缓存穿透指的是:一个缓存和数据库中都不存在的数据,由于数据库无法写入缓存,导致频繁请求直接打到数据库,从而造成数据库压力过大甚至被“打穿”。 常见的解决方法包括:缓存空值 或 布隆过滤器。 布隆过滤器由一个全 0 的位图数组和 n 个哈希函数组成。当一个数据在请求缓存前,会先经过布隆过滤器。过滤器会通过 n 个哈希函数计算出 n 个哈希值,再分别对数组长度取模,并将对应的数组下标置为 1。 查询时,只需要查看位图数组中这 n 个位置是否全部为 1: 若存在某个位为 0,则说明该数据一定不存在于数据库中; 若全部为 1,则说明该数据可能存在,但不一定真的存在,因为可能出现哈希碰撞。 因此,布隆过滤器判断“存在”时并不能保证数据真的存在,但判断“不存在”时一定准确。 缓存雪崩 缓存雪崩指的是:大量的缓存 Key 在同一时间失效,或者 Redis 服务器宕机,导致所有请求同时打到数据库,造成数据库瞬时压力过大,甚至宕机的情况。 解决方法: 为缓存设置 固定过期时间 + 随机过期时间,让不同 Key 的过期时间错开,避免在同一时间集中失效。 ...
1
avatar
彬子
biny
文章
100
标签
32
分类
5
Follow Me
公告
This is my Blog
最新文章
MySQL的锁2026-01-01
垃圾收集器(CMS-G1-ZGC)与垃圾回收算法
垃圾收集器(CMS-G1-ZGC)与垃圾回收算法2025-12-30
类加载机制与类加载器
类加载机制与类加载器2025-12-28
MySQL的MVCC
MySQL的MVCC2025-12-27
SpringMVC执行流程2025-12-25
分类
  • Java10
  • 数据库10
  • 算法80
    • 模板2
    • 题解75
标签
JavaIO集合并发JVM垃圾收集MySQL索引HashMap事务MVCC锁Redis分布式锁Redisson网络模型IO多路复用过期策略淘汰策略数据结构SpringIOCDI缓存数据同步垃圾收集器垃圾回收算法VolatileSpringMVC执行流程类加载性能优化
归档
  • 2026年01月 1
  • 2025年12月 9
  • 2025年11月 8
  • 2025年10月 2
  • 2025年05月 1
  • 2025年03月 21
  • 2025年02月 15
  • 2025年01月 13
网站信息
文章数目 :
100
运行时间 :
本站总字数 :
58.8k
最后更新时间 :
©2019 - 2026 By 彬子
框架 Hexo|主题 Butterfly
搜索
数据加载中