缓存失效了,怎么办?

Part 01

前言 

在高并发的系统架构中,大量网络请求的并发处理,导致数据库的I/O消耗是非常巨大的,为了快速读取数据,减少网络请求时延,缓解数据库的压力,因此在软件开发中引入了缓存技术。但是在缓存的使用过程中也会遇到一些特殊情况导致缓存失效,常见的缓存失效的情况有三种:缓存穿透、缓存击穿、缓存雪崩。

Part 02

缓存失效的三种情况 

缓存(以Redis缓存为例)的引入可以减少请求数据库的次数,提高查询效率,从而提升系统性能。一般的流程是:应用发起请求后,先查询缓存中是否存在所需数据,如果缓存中存在,直接返回数据,如果缓存中不存在所需数据,则需要去查询数据库,如果数据库中存在所需数据,则一方面存入缓存,另一方面返回查询结果,如果数据库中不存在,则返回空或者错误。

图1 缓存使用流程图

– 缓存穿透

缓存穿透(Cache Penetration)是指查询一个一定不存在的数据,即用户访问的数据既不在缓存当中,也不在数据库中。由于缓存中查询不到数据,请求会去查询数据库,然而数据库中也不存在该数据,也不会写入缓存,导致查询该数据的时候,每次都要去数据库中查询,给数据库到来压力。

– 缓存雪崩

缓存雪崩(Cache Avalanche)是指大量的缓存数据在某一时刻超过了缓存的过期时间,同时失效,导致高并发的请求同时去访问数据库,造成数据库压力过大,导致系统崩溃。这是针对多个缓存数据而言的。

– 缓存击穿

缓存击穿(Cache Breakdown)是指缓存过期的一瞬间,有大量的请求去查询同一个缓存数据,由于该数据在承载着大并发,当该数据失效的一瞬间,持续的大并发就会直接去请求数据库,造成数据库压力倍增。这是针对一个缓存数据而言的。

Part 03

解决方案 

针对缓存穿透的解决方案:

1.第一种方案是采用布隆过滤器进行数据拦截。这也是针对缓存击穿采用的常用方案。在写入数据时,使用布隆过滤器对数据的key进行标记,当带有数据key的请求过来后,先用布隆过滤器验证key是否存在,如果存在,再进入缓存或者数据库中进行查询。

2.第二种方案是缓存空值。当在数据库中查询不到数据时,将其缓存为空值或者默认值。此时需要注意,针对其的缓存过期时间不宜过长,一般设置为5分钟内,当数据库被写入或者更新该key的新数据时,缓存必须同时更新,保证数据的一致性。

针对缓存雪崩的解决方案:

1.一般是将key的过期时间后面增加一个随机数,让过期时间分散开,使key均匀失效,减少缓存时间过期的重复率。

2.利用加锁或队列的方式,保证缓存单线程写,但是这种方案会影响并发量,多个请求过来时,只有一个在进行正常的操作,其他请求都会在等待的状态,影响程序性能,不推荐使用。

3.使用缓存标记,这是比较好的解决办法。判断标记是否过期,过期则去数据库中请求,而缓存数据的过期时间要设置的比缓存标记长些,如此一来,当一个请求去操作数据库的时候,其他的请求拿到的是上一次的缓存数据。

针对缓存击穿的解决方案:

1.使用互斥锁,当缓存的key过期时,多个请求过来时只允许一个请求去查询数据库构建缓存,其他请求等待该请求执行完毕之后,重新从缓存中获取数据。

2.针对访问量比较大的数据,即热点数据,不设置缓存过期时间,后台异步更新缓存,适用于不严格要求缓存一致性的场景。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/281149.html<

(0)
运维的头像运维
上一篇2025-05-12 20:50
下一篇 2025-05-12 20:51

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注