某电商系统中,攻击者不断请求大量根本不存在的商品 ID。由于缓存中查不到,数据库中也查不到,这些请求持续绕过缓存打到数据库,造成数据库压力升高。该现象更接近()。
缓存穿透通常指请求的数据在缓存和数据库中都不存在,大量请求不断绕过缓存打到数据库。缓存击穿则更强调某个热点 key 过期瞬间,大量并发请求同时回源;缓存雪崩强调大量 key 同时失效或缓存服务整体不可用,导致请求成片压向数据库。穿透常见防护包括缓存空值、布隆过滤器、参数校验和限流。
选项分析
正确。不存在的数据反复绕过缓存访问数据库,属于缓存穿透。
错误。缓存击穿通常是某个存在的热点 key 过期,大量请求同时回源。
错误。缓存雪崩强调大量 key 同时失效或缓存服务整体不可用。
错误。磁盘碎片整理与缓存并发问题无关。
本题为什么容易错
这题容易错在看到数据库压力升高就选雪崩。雪崩看的是大量缓存同时失效;本题的核心是请求的数据本来就不存在,缓存层挡不住,所以是穿透。
简短答案
缓存穿透、缓存击穿和缓存雪崩怎么区分,正确答案是 A(缓存穿透)。缓存穿透通常指请求的数据在缓存和数据库中都不存在,大量请求不断绕过缓存打到数据库。缓存击穿则更强调某个热点 key 过期瞬间,大量并发请求同时回源;缓存雪崩强调大量 key 同时失效或缓存服务整体不可用,导致请求成片压向数据库。穿透常见防护包括缓存空值、布隆过滤器、参数校验和限流。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 缓存穿透 | 本题正确答案 | 正确。不存在的数据反复绕过缓存访问数据库,属于缓存穿透。 | 看到题干核心场景时优先联想到它 |
| 缓存击穿 | 本题干扰项 | 错误。缓存击穿通常是某个存在的热点 key 过期,大量请求同时回源。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 缓存雪崩 | 本题干扰项 | 错误。缓存雪崩强调大量 key 同时失效或缓存服务整体不可用。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 磁盘碎片整理 | 本题干扰项 | 错误。磁盘碎片整理与缓存并发问题无关。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 缓存击穿:错误。缓存击穿通常是某个存在的热点 key 过期,大量请求同时回源。
- 缓存雪崩:错误。缓存雪崩强调大量 key 同时失效或缓存服务整体不可用。
- 磁盘碎片整理:错误。磁盘碎片整理与缓存并发问题无关。
知识点详解
Redis是系统架构设计师考试中需要结合场景理解的考点。围绕“缓存穿透、缓存击穿和缓存雪崩怎么区分”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“某电商系统中,攻击者不断请求大量根本不存在的商品 ID。由于缓存中查不到,数据库中也查不到,这些请求持续绕过缓存打到数据库,造成数据库压力升高。该现象更接近()”,它指向的核心答案是 A(缓存穿透)。
备考速记
备考速记:题干如果强调“Redis”中的关键目标,就先联想到 Redis;如果选项里出现 缓存击穿、缓存雪崩、磁盘碎片整理,不要只看名称熟悉,要判断它们是否真正对应题干场景。
Redis 在Redis场景中的作用
Redis在本题中的核心价值,是解决“某电商系统中,攻击者不断请求大量根本不存在的商品 ID。由于缓存中查不到,数据库中也查不到,这些请求持续绕过缓存打到数据库,造成数据库压力升高。该现象更接近()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给出Redis场景,判断应该选择哪个概念、工具、协议或管理过程。
- 考查Redis的作用,要求从四个相近选项中找出最符合题干目标的一项。
- 把Redis和缓存击穿、缓存雪崩、磁盘碎片整理放在一起考,重点看适用场景是否一致。
- 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
Redis 在系统架构设计师软考中的考法
软考选择题通常不会只考概念定义,还会把Redis放到Redis场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
题干里最关键的一句是“大量根本不存在的商品 ID”。如果数据库里本来就没有这批数据,缓存自然也没有,反复请求就会穿过缓存层打到数据库,这就是缓存穿透。老师讲架构题时一般会让大家先问:数据到底存在不存在?存在但热点过期,多半是击穿;大量一起失效,多半是雪崩;根本不存在还一直查,就是穿透。
考点定位
缓存三兄弟不要混:穿透是查不存在,击穿是热点 key 失效,雪崩是大量 key 或缓存整体失效。
易错提醒
- 把所有缓存失效造成数据库压力都叫雪崩。
- 没有区分数据是否真实存在。
- 只想到加缓存,没想到缓存空值、布隆过滤器和参数校验。
备考提示
- 复习缓存题时,用三个问题判断:数据存在吗?是不是热点 key?是不是大量 key 同时失效?
- 架构题常把缓存穿透、击穿、雪崩放在同一道题里考,建议按场景而不是按名字背。
你可能还想了解
- 缓存穿透、缓存击穿和缓存雪崩怎么区分?
- Redis是什么?
- Redis在系统架构设计师考试中怎么考?
- 系统架构设计师Redis题怎么理解?
- 缓存穿透击穿雪崩区别怎么考?
- 系统架构设计师缓存题怎么考?
本文小结
本题核心考点是Redis在Redis场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(缓存穿透)。