校招 未知部门 / 后端开发 / 一面
[面试日期] 2026-07-28 [面试时长] 未知
[学校背景] 未知 | 未知 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>面试官问我:缓存击穿、穿透、雪崩怎么区分</h2>
<p>校招一面,面试官问了一个基础但容易答混的问题:缓存击穿、缓存穿透、缓存雪崩,这三个你能区分清楚吗?</p>
<p>我说能。缓存穿透是查一个根本不存在的数据,请求绕过缓存直接打到数据库;缓存击穿是一个热点key突然过期,大量请求同时打到数据库;缓存雪崩是大量key同时过期,请求批量打到数据库。三者的共同点是缓存没挡住请求,区别在于原因不同。</p>
<p>他追问:那对应的解决方案分别是什么?我说穿透的解决方案是缓存空值或者用布隆过滤器,把不存在的数据也挡在缓存层。击穿的解决方案是热点key永不过期,或者加互斥锁,让一个请求去查数据库、其他请求等待。雪崩的解决方案是给过期时间加随机抖动,让key不要同时失效。</p>
<p>面试官点了点头,又问了一个更深的问题:这三个方案你在实习里用过哪个?我说用过雪崩的方案。实习的时候我发现一个接口在高峰期有周期性的响应时间尖峰,查了之后发现是缓存同时过期导致的。原来的过期时间设的是固定值,高峰期一到,一批key同时失效,请求就集中打到数据库。</p>
<p>我给过期时间加了随机抖动,抖动范围是基础过期时间的百分之二十。改完之后,响应时间的周期性尖峰消失了。我把这个改动写进了方案文档,附了前后的监控对比图。导师看完说了一句:这种改动看起来小,但它解决的是一个规律性的问题。</p>
<p>他又问:那你有没有想过,为什么之前的过期时间没有加随机抖动?我说想过。大概率是写代码的时候没考虑到key会集中失效,因为日常流量下即使集中失效,数据库也扛得住。只有高峰期流量大的时候,集中失效才会变成问题。这是一个流量增长之后才暴露的隐患。</p>
<p>面试官在简历上记了几笔,说了一句:基础概念谁都能背,但你能讲到实习里怎么用的、为什么之前没有这个问题,这说明你不只是背了,是做过。这个评价让我有点意外,因为我没觉得自己答得多好,只是把实习时踩过的坑如实讲了。</p>
<p>一面过了。回想这轮面试,真正帮我的不是背了三个概念的定义,而是在真系统里改过一次缓存过期时间、看过前后的监控对比。那种经历,是看书看不出来的。如果你也想在面试里讲出属于自己的缓存优化经历,投递入口在下面。</p>
<h2>在拼多多,你将获得什么</h2>
<p><strong>在真流量里练缓存优化</strong>
高并发、高流量、分布式环境下的容灾容错不只是概念,是你要在真流量里调的缓存策略。高可用和高可靠是在一次次优化中逼近的目标。</p>
<p><strong>走完整开发流程,每个改动都有验证</strong>
按照软件开发流程,从架构设计、编码、测试到文档,你参与一个模块的完整生命周期。改一个过期时间也要附监控对比图,不是改完就完。</p>
<p><strong>新人也能碰有挑战的问题</strong>
负责基础和业务的架构设计和研发,承担新技术预研和方案选型。缓存策略怎么设,不会因为你是应届就绕开你。</p>
<h2>加入我们</h2>
<p>校招投递进行中。如果你也想在真系统里练属于自己的缓存优化,欢迎通过下面的内推链接投递,内推简历优先筛选。</p>
<p>【拼多多集团-PDD校园招聘】内推链接:https://careers.pddglobalhr.com/campus/grad?t=6U8PSGz529 ,内推码:6U8PSGz529。期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~)</p>
AI 推荐面试题
