Redis缓存穿透和雪崩(面试高频)
1、什么是缓存穿透缓存穿透的概念很简单用户想要查询一个数据发现redis内存数据库没有也就是缓存没有命中于是向持久层数据库查询。发现也没有于是本次查询失败。当用户很多的时候缓存都没有命中于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力这时候就相当于出现了缓存穿透。缓存穿透是指缓存和数据库中都没有的数据2、缓存穿透的解决方案布隆过滤器:布隆过滤器是一种数据结构对所有可能查询的参数以hash形式存储在控制层先进行校验不符合则丢弃从而避免了对底层存储系统的查询压力在访问缓存层和存储层之前将存在的key用布隆过滤器提前保存起来做第一层拦截当收到一个对key请求时先用布隆过滤器验证是key否存在如果存在在进入缓存层、存储层。可以使用bitmap做布隆过滤器。这种方法适用于数据命中不高、数据相对固定、实时性低的应用场景代码维护较为复杂但是缓存空间占用少。优点内存占用较少没有多余key 缺点实现复杂存在误判缓存空对象:缓存空对象是指在持久层没有命中的情况下对key进行set(key,)当存储层不命中后即使返回的空对象也将其缓存起来同时会设置一个过期时间之后再访问这个数据将会从缓存中获取保护了后端数据源优点简单缺点消耗内存可能会发生不一致的问题(如果后面数据库插入了之前不存在的数据)3、什么是缓存击穿缓存击穿是指缓存中没有但数据库中有的数据一般是缓存时间到期这时由于并发用户特别多同时读缓存没读到数据又同时去数据库去取数据引起数据库压力瞬间增大造成过大压力。在缓存失效的瞬间有大量的请求并发访问这类数据一般是热点数据由于缓存过期会同时访问数据库来查询最新数据造成后端负载加大甚至可能会让应用崩溃。例如:一个秒杀的场景同时几万个用户同时抢购缓存中没有数据几万个用户会同时去查询数据 可能会造成服务器宕机。4、缓存击穿解决方案1、设置热点数据永不过期从缓存层面来看没有设置过期时间所以不会出现热点 key 过期后产生的问题。2、分布式互斥锁分布式锁使用分布式锁保证对于每个key同时只有一个线程去查询后端服务该线程查询数据完成后重建缓存set(key,value,timeout)。其他线程没有获得分布式锁的权限因此只需要等待即可。等待缓存重构完成后重新从缓存获取数据即可。5、什么是缓存雪崩缓存雪崩是指在某一个时间段缓存集中过期失效。Redis宕机。由于缓存层承载着大量请求有效地保护了存储层但是如果缓存层由于某些原因不可宕机或者大量缓存由于超时时间相同在同 一时间段失效大批key失效/热点数据失效大量请求直接到达存储层存储层压力过大导致系统雪崩。案例:马上就要到双十二零点很快就会迎来一波抢购这波商品时间比较集中的放入了缓存假设缓存一个小时。那么到了凌晨一点钟的时候这批商品的缓存就都过期了。而对这批商品的访问查询都落到了数据库上对于数据库而言就会产生周期性的压力波峰。于是所有的请求都会达到存储层存储层的调用量会暴增造成存储层也会挂掉的情况。6、缓存雪崩解决方案1、可以把缓存层设计成高可用的即使个别节点、个别机器、甚至是机房宕掉依然可以提供服务。利用sentinel或cluster实现。2、 采用多级缓存本地进程作为一级缓存redis作为二级缓存不同级别的缓存设置的超时时间不同即使某级缓存过期了也有其他级别缓存兜底3、 缓存的过期时间用随机值尽量让不同的key的过期时间不同

相关新闻

Unity非均匀缩放导致子物体倾斜剪切:矩阵原理与4种解决方案详解

Unity非均匀缩放导致子物体倾斜剪切:矩阵原理与4种解决方案详解

1. 项目概述:一个被忽视的“祖传”问题如果你在Unity里做过稍微复杂一点的UI嵌套,或者摆放过带有层级关系的3D道具,大概率遇到过这个让人挠头的现象:一个规规矩矩的方形子物体,当它的父物体在X、Y、Z轴上缩放比例不一致…

2026/8/9 17:03:44 阅读更多 →
UE5 GAS RPG存档系统:实现角色技能与场景状态持久化保存

UE5 GAS RPG存档系统:实现角色技能与场景状态持久化保存

1. 项目概述与核心价值在UE5里做RPG,尤其是带复杂技能系统的,存档功能绝对是开发中后期最让人头疼的“硬骨头”之一。你辛辛苦苦用GAS(Gameplay Ability System)搭了一套酷炫的技能、Buff和属性系统,角色在游戏世界里大…

2026/8/9 17:03:44 阅读更多 →
AI赋能系统运维:智能解决VC++运行库安装难题

AI赋能系统运维:智能解决VC++运行库安装难题

1. 项目概述:当AI遇见VC运行库作为一名在Windows平台下摸爬滚打了十多年的开发者,我敢说,几乎每个用电脑的人都遇到过那个令人头疼的弹窗:“无法启动此程序,因为计算机中丢失 VCRUNTIME140.dll”或者“microsoft visua…

2026/8/9 17:03:44 阅读更多 →

最新新闻

CAN通信超全详解:从底层原理、三代技术迭代到工程落地实战

CAN通信超全详解:从底层原理、三代技术迭代到工程落地实战

摘要:CAN 总线是车载、工控、机器人、自动驾驶领域的核心实时通信总线。不同于仅具备电气特性的 RS485,CAN 拥有完整的物理层、协议层、仲裁机制、硬件校验、错误管理与自愈能力。多数开发者仅会基础收发,不懂错误帧处理、状态机流转、总线自…

2026/8/9 18:50:36 阅读更多 →
通信精讲|CAN总线与RS485最全深度对比(原理、差异、CAN FD/XL新技术、工程坑点、选型、代码样例)

通信精讲|CAN总线与RS485最全深度对比(原理、差异、CAN FD/XL新技术、工程坑点、选型、代码样例)

前言:在嵌入式工业控制、物联网设备、车载电子、机器人开发领域,RS485与CAN总线是应用最广泛的两类差分串行通信方案。二者外观相似、均为差分传输、支持多节点组网、抗共模干扰,导致大量开发者产生认知混淆,甚至项目随意替换选型…

2026/8/9 18:50:36 阅读更多 →
深度架构解析:Ice - 重新定义macOS菜单栏管理的技术边界

深度架构解析:Ice - 重新定义macOS菜单栏管理的技术边界

深度架构解析:Ice - 重新定义macOS菜单栏管理的技术边界 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 设计理念:从视觉混乱到智能组织 在刘海屏MacBook Pro和多显示器工作…

2026/8/9 18:50:36 阅读更多 →
从论文到实践:LimiX-2M表格基础模型的学术价值与商业应用

从论文到实践:LimiX-2M表格基础模型的学术价值与商业应用

从论文到实践:LimiX-2M表格基础模型的学术价值与商业应用 【免费下载链接】LimiX-2M 项目地址: https://ai.gitcode.com/hf_mirrors/stable-ai/LimiX-2M LimiX-2M是一款仅含200万参数的表格基础模型,专为解决结构化数据中的低秩崩溃和注意力瓶颈…

2026/8/9 18:50:36 阅读更多 →
原神抽卡记录导出工具:3分钟免费获取完整抽卡数据分析指南

原神抽卡记录导出工具:3分钟免费获取完整抽卡数据分析指南

原神抽卡记录导出工具:3分钟免费获取完整抽卡数据分析指南 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 你是否经常忘记自己的抽卡保底次数…

2026/8/9 18:50:36 阅读更多 →
Mesen模拟器完整指南:5分钟学会NES游戏开发与调试技巧

Mesen模拟器完整指南:5分钟学会NES游戏开发与调试技巧

Mesen模拟器完整指南:5分钟学会NES游戏开发与调试技巧 【免费下载链接】Mesen Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C and C# 项目地址: https://gitcode.com/gh_mirrors/me/Mesen Mesen是一款功能强大的跨平台N…

2026/8/9 18:49:36 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →