news 2026/1/11 18:03:55

缓存穿透、缓存击穿、缓存雪崩

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
缓存穿透、缓存击穿、缓存雪崩

什么是缓存穿透?如何解决?

缓存穿透就是大量请求去访问数据库与缓存中都不存在的数据,因为数据库不存在,缓存肯定不存在就不生效,所有请求最终都流转到了数据库,导致数据库压力过大而宕机。

解决方法常用的有两种

第一种简单的就是缓存空值。当请求的数据缓存与数据库都没有时,就将空值缓存到Redis,这样再查这样的数据时就不会流转到数据库。

第二种方法是使用布隆过滤器,布隆过滤器是一种基于hash的算法。首先有好几种不一样的hash函数,来计算数据对应的hashcode。不同的算法计算出不同的值。然后把这些结果映射到一个很长的bit数组置为1。我们想判断某个值是否存在时就让他再被这几个hash函数运算一次,那到hash值后去bit数组查验这些位置是不是都是1。如果全是1就证明这个数据存在。针对于布隆过滤器的这种特性,我们可以把数据库的数据都用布隆过滤器标记出来,当缓存中没有请求的数据时,就先基于布隆过滤器判断,布隆认定不存在就拒绝这个请求,如果存在就让访问数据库。尽管布隆过滤器有多重hash函数来求hash值,但还是有可能会有hash冲突。但这个概率非常小,我们通常忽略不计。

什么是缓存击穿?如何解决?

缓存击穿就是有一个高并发访问的数据突然失效了,并且重建缓存期间导致大量的请求涌入数据库,而压垮数据库的问题。解决缓存击穿的常用方案有两种。

第一种是逻辑过期,就是说对于热点数据过期之后不要立马删除,等到热度过去之后手动删除。就是说但有请求访问时,发现这个数据过期了,然后就开启一个异步线程去重建缓存数据,同时给这个请求返回还没有删除的旧数据。当有别的请求来的时候都给他们返回旧数据。并且为了防止别的线程发现数据过期也要开启异步异步线程重构缓存,我们通常会加锁,确保一个线程重构缓存的时候别的线程不能重构。

第二种方案就是加锁。当一个线程发现缓存数据失效之后,要先拿到锁,然后才能去重构缓存,然后再释放锁。在重构过程中要是有其他线程想访问缓存资源时会让他们休眠一会然后重试直到锁被释放,然后他们就可以从缓存中拿到数据。

什么是缓存雪崩?如何解决?

缓存雪崩就是指同一时间段内大量数据失效或者redis宕机,导致大量请求进入到数据库,压垮数据库。

解决缓存雪崩问题的常见方案有:①给数据设置过期时间的时候不要设置大量相同的,这样就可以防止同一时间大量数据失效。②搭建redis集群,当一个服务宕机时,立刻有另一个服务顶上来。③可以给缓存业务设置限流策略。④使用多级缓存,比如同时设置本地缓存与redis缓存。访问时先在本地查,本地没有然后去redis查,redis没有才会流转到数据库。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/11 9:15:28

Qwen3-4B思维模型2507:推理性能提升40%实测

Qwen3-4B思维模型2507:推理性能提升40%实测 【免费下载链接】Qwen3-4B-Thinking-2507-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-4B-Thinking-2507-GGUF 导语:Qwen3-4B-Thinking-2507模型正式发布,通过针对性…

作者头像 李华
网站建设 2026/1/11 12:33:00

逻辑门温度特性分析:工业级与商业级差异说明

逻辑门温度特性揭秘:工业级为何能扛住−40C冷启动?你有没有遇到过这样的情况:电路在实验室里跑得好好的,一拿到户外现场,冬天直接“罢工”?复位异常、信号错乱、功耗飙升……排查一圈,最后发现“…

作者头像 李华
网站建设 2026/1/11 6:27:44

绿色GPU倡议:推广节能型硬件与算法优化

绿色GPU倡议:推广节能型硬件与算法优化 在AI大模型席卷各行各业的今天,语音合成系统正变得越来越“聪明”——不仅能模仿人声,还能演绎情绪、切换角色,甚至生成长达数小时的对话内容。但随之而来的问题也愈发突出:一次…

作者头像 李华
网站建设 2026/1/10 18:18:17

LFM2-700M-GGUF:边缘AI部署的高效新工具

LFM2-700M-GGUF:边缘AI部署的高效新工具 【免费下载链接】LFM2-700M-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/LiquidAI/LFM2-700M-GGUF 导语:Liquid AI推出的LFM2-700M-GGUF模型,为边缘AI和设备端部署提供了兼具质量、速度…

作者头像 李华
网站建设 2026/1/10 23:35:34

VibeVoice-WEB-UI更新日志:新功能与性能优化记录

VibeVoice-WEB-UI:当对话级语音合成走向人人可用 在播客制作人熬夜录音、反复剪辑的深夜,在有声书团队为角色配音协调演员档期时,在教育工作者面对海量课件却无力逐字朗读的困境中——一个共同的问题浮现出来:我们能否让机器真正“…

作者头像 李华
网站建设 2026/1/11 14:42:41

NVIDIA Audio Flamingo 3:10分钟音频理解新标杆

NVIDIA Audio Flamingo 3:10分钟音频理解新标杆 【免费下载链接】audio-flamingo-3 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/audio-flamingo-3 导语:NVIDIA最新发布的Audio Flamingo 3(AF3)大型音频语言模型…

作者头像 李华