- 讲清 8 种淘汰策略、惰性删除与定期删除,以及 maxmemory 的配置 讲清 8 种淘汰策略、惰性删除与定期删除,以及 maxmemory 的配置
- 讲透 fork 写时复制、三种刷盘策略与 7.0 多部分 AOF 的实现 讲透 fork 写时复制、三种刷盘策略与 7.0 多部分 AOF 的实现
- 从 9 种数据类型到 7 种底层编码,讲清转换阈值与选型依据 从 9 种数据类型到 7 种底层编码,讲清转换阈值与选型依据
- 多语言 API 若未声明 Vary,共享缓存可能把中文响应复用给英文请求。本文在 Express 中间件中解析 Accept-Language、设置 Vary 与 Cache-Control,并用 curl 对比两次请求的响应头,验证缓存键随语言变化。 多语言 API 若未声明 Vary,共享缓存可能把中文响应复用给英文请求。本文在 Express 中间件中解析 Accept-Language、设置 Vary 与 Cache-Control,并用 curl 对比两次请求的响应头,验证缓存键随语言变化。
- 打开一个网页时,浏览器并不是每次都重新下载所有资源。HTTP 缓存就是让浏览器在合理条件下复用已下载内容,从而减少请求、加快打开速度、减轻服务器压力。理解缓存,关键是分清强缓存和协商缓存:前者不发请求直接用本地副本,后者先问服务器内容有没有变,再决定用旧的还是下载新的。强缓存由响应头控制。最常用的是 Cache-Control,例如 max-age=3600 表示资源在 3600 秒内可以直... 打开一个网页时,浏览器并不是每次都重新下载所有资源。HTTP 缓存就是让浏览器在合理条件下复用已下载内容,从而减少请求、加快打开速度、减轻服务器压力。理解缓存,关键是分清强缓存和协商缓存:前者不发请求直接用本地副本,后者先问服务器内容有没有变,再决定用旧的还是下载新的。强缓存由响应头控制。最常用的是 Cache-Control,例如 max-age=3600 表示资源在 3600 秒内可以直...
- 一、问题背景:传统取模哈希在集群扩缩容时的“缓存雪崩”灾难在分布式缓存(如 Redis、Memcached 集群)与微服务网关分片场景中,为了将海量请求均匀打散到多台缓存服务器,最直观的方案是采用简单的取模哈希算法:node_index=hash(key)(modN)\text{node\_index} = \text{hash}(\text{key}) \pmod Nnode_index... 一、问题背景:传统取模哈希在集群扩缩容时的“缓存雪崩”灾难在分布式缓存(如 Redis、Memcached 集群)与微服务网关分片场景中,为了将海量请求均匀打散到多台缓存服务器,最直观的方案是采用简单的取模哈希算法:node_index=hash(key)(modN)\text{node\_index} = \text{hash}(\text{key}) \pmod Nnode_index...
- 给小服务加缓存,很多人第一反应是“哪里慢就缓存哪里”。这个顺序反了。缓存真正的难点从来不是怎么存、存多快,而是数据变了之后,旧的缓存什么时候失效、失效不干净会出什么问题。没想清楚失效就上缓存,省下来的响应时间,最后都会以脏数据、用户投诉和深夜排障的方式还回来。先说一个最常见的坑:缓存了不该缓存的东西。用户个人的信息、权限判断的结果、实时性很强的库存和价格,一旦被缓存复用,就会出现“明明改过了... 给小服务加缓存,很多人第一反应是“哪里慢就缓存哪里”。这个顺序反了。缓存真正的难点从来不是怎么存、存多快,而是数据变了之后,旧的缓存什么时候失效、失效不干净会出什么问题。没想清楚失效就上缓存,省下来的响应时间,最后都会以脏数据、用户投诉和深夜排障的方式还回来。先说一个最常见的坑:缓存了不该缓存的东西。用户个人的信息、权限判断的结果、实时性很强的库存和价格,一旦被缓存复用,就会出现“明明改过了...
- 在高并发的后端服务里,Redis 几乎是标配的缓存层。它能把数据库的读压力降下来,但用不好也会带来新的故障:明明加了缓存,数据库还是被打垮了。今天就来聊聊缓存最常见的三个"坑"——穿透、击穿、雪崩,以及各自的应对办法。 一、缓存穿透:查不存在的东西,查一次打一次库现象:请求查询一个根本不存在的数据(比如 id = -1 的用户),缓存里没有,数据库里也没有,于是每次请求都会穿透缓存直达数据库... 在高并发的后端服务里,Redis 几乎是标配的缓存层。它能把数据库的读压力降下来,但用不好也会带来新的故障:明明加了缓存,数据库还是被打垮了。今天就来聊聊缓存最常见的三个"坑"——穿透、击穿、雪崩,以及各自的应对办法。 一、缓存穿透:查不存在的东西,查一次打一次库现象:请求查询一个根本不存在的数据(比如 id = -1 的用户),缓存里没有,数据库里也没有,于是每次请求都会穿透缓存直达数据库...
- 用电脑和手机的时候,经常能听到一个词:缓存。App 提醒你"清理缓存",网页第二次打开明显变快,客服解决问题的第一招也是"清一下缓存试试"。这个东西到底是什么,为什么到处都有它?先说定义。缓存就是把"以后可能还会用到的数据",提前抄一份,放在离你更近、手更快的地方。就像你把常吃的药放在床头柜,而不是每次都跑去楼下药房买——数据本身没变,只是存放的位置变了,取得更快了。为什么需要它?因为计算机... 用电脑和手机的时候,经常能听到一个词:缓存。App 提醒你"清理缓存",网页第二次打开明显变快,客服解决问题的第一招也是"清一下缓存试试"。这个东西到底是什么,为什么到处都有它?先说定义。缓存就是把"以后可能还会用到的数据",提前抄一份,放在离你更近、手更快的地方。就像你把常吃的药放在床头柜,而不是每次都跑去楼下药房买——数据本身没变,只是存放的位置变了,取得更快了。为什么需要它?因为计算机...
- 前言在高并发业务场景中,Redis 等缓存中间件几乎是标配。缓存能大幅降低数据库压力,但如果使用不当,同样会引发线上故障。缓存穿透、缓存击穿、缓存雪崩是缓存异常的“三兄弟”,名字相似、成因却完全不同,排查和应对的思路也各不相同。本文把三者一次讲清。 一、缓存穿透:查的是不存在的数据现象:请求查询一个缓存和数据库中都不存在的数据,每次请求都会直接打到数据库。如果这类请求并发量很高,数据库很容... 前言在高并发业务场景中,Redis 等缓存中间件几乎是标配。缓存能大幅降低数据库压力,但如果使用不当,同样会引发线上故障。缓存穿透、缓存击穿、缓存雪崩是缓存异常的“三兄弟”,名字相似、成因却完全不同,排查和应对的思路也各不相同。本文把三者一次讲清。 一、缓存穿透:查的是不存在的数据现象:请求查询一个缓存和数据库中都不存在的数据,每次请求都会直接打到数据库。如果这类请求并发量很高,数据库很容...
- 区分缓存击穿、穿透与雪崩的触发条件与后果,给出互斥锁与逻辑过期防击穿、布隆过滤器与空值短缓存防穿透、TTL随机抖动与多级缓存防雪崩的可落地代码与检查清单。 区分缓存击穿、穿透与雪崩的触发条件与后果,给出互斥锁与逻辑过期防击穿、布隆过滤器与空值短缓存防穿透、TTL随机抖动与多级缓存防雪崩的可落地代码与检查清单。
- Redis 在 Web 架构里几乎是缓存的标配,但在实际使用中,几个经典坑点反复出现。理解它们的成因与应对策略,能把缓存层从"性能加速器"变成"稳定加速器"。一、缓存穿透查询一个必定不存在的数据,缓存未命中且回源也未命中,请求会直接打到数据库。高频的穿透查询能把 DB 打垮。应对:布隆过滤器拦截不存在的 key,拦截后直接返回空。对空值也写缓存,并设较短的 TTL(如 30-60 秒),避免... Redis 在 Web 架构里几乎是缓存的标配,但在实际使用中,几个经典坑点反复出现。理解它们的成因与应对策略,能把缓存层从"性能加速器"变成"稳定加速器"。一、缓存穿透查询一个必定不存在的数据,缓存未命中且回源也未命中,请求会直接打到数据库。高频的穿透查询能把 DB 打垮。应对:布隆过滤器拦截不存在的 key,拦截后直接返回空。对空值也写缓存,并设较短的 TTL(如 30-60 秒),避免...
- 从库从不主动删除过期键:读取时判定过期返回 nil,真正的删除由主库用 DEL/UNLINK 传播。本文拆解惰性删除与定期采样机制,解释为什么过期键还能被 SCAN 到,并给出大量 key 同时过期时的 5 个解法与 4 个排查指标。 从库从不主动删除过期键:读取时判定过期返回 nil,真正的删除由主库用 DEL/UNLINK 传播。本文拆解惰性删除与定期采样机制,解释为什么过期键还能被 SCAN 到,并给出大量 key 同时过期时的 5 个解法与 4 个排查指标。
- 缓存 TTL 逻辑依赖真实时间,直接 sleep 会让测试变慢且不稳定。本文用一个最小可运行的 TTLCache 类配合 pytest 的 monkeypatch 替换 time.time,通过手动推进虚拟时钟,验证 TTL 内命中、到期失效与重写刷新过期时间等边界行为,并说明补丁范围、时钟选择与并发等限制。 缓存 TTL 逻辑依赖真实时间,直接 sleep 会让测试变慢且不稳定。本文用一个最小可运行的 TTLCache 类配合 pytest 的 monkeypatch 替换 time.time,通过手动推进虚拟时钟,验证 TTL 内命中、到期失效与重写刷新过期时间等边界行为,并说明补丁范围、时钟选择与并发等限制。
- 本文从成因、现象、排查步骤和防护手段四个方面,系统梳理 Redis 缓存雪崩与缓存穿透的排查方法,并给出可直接落地的示例配置,帮助你在故障时快速定位、在平时提前加固。 本文从成因、现象、排查步骤和防护手段四个方面,系统梳理 Redis 缓存雪崩与缓存穿透的排查方法,并给出可直接落地的示例配置,帮助你在故障时快速定位、在平时提前加固。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签