Redis 大 Key 与热 Key:治理实战#
线上 Redis 的两大杀手:大 Key(单个 key 值巨大)和热 Key(单个 key 被疯狂访问)。一个阻塞集群,一个打爆节点。这篇文章是两次事故后的完整治理方案。
一、大 Key:阻塞的元凶#
本质:Redis 单线程模型下,慢命令的代价由全库承担。
1
2
3
4
5
6
7
8
|
# 1. 用 SCAN 找大 key(生产安全,不阻塞)
redis-cli --bigkeys --scan --pattern '*'
# 2. 按类型排查
redis-cli --bigkeys
# 3. 监控慢命令
redis-cli slowlog get 20
|
二、热 Key:打爆单节点的元凶#
本质:Redis 集群按 key 分布,热 key 的访问无法分片。
三、两个事故复盘#
事故 1:大 Key 引发的全库阻塞#
事故 2:热 Key 打爆节点#
四、预防体系#
五、避坑清单#
大 Key 与热 Key 的核心认知:
- 大 Key 阻塞全局:Redis 单线程,慢命令=全库卡顿
- 热 Key 无法分片:集群也救不了单个 key 的访问热点
- 治理三板斧:拆分(大 key)、本地缓存(热 key)、降级兜底
- 预防 > 救火:key 设计评审 + 巡检 + 监控
Redis 的性能杀手从来不是"数据量大",是"单个 key 的极端情况"。 把大 key 拆掉、热 key 挡住,Redis 才能稳定扛住业务。
微信公众号「福清而不淡」
后端架构 · AI 工程 · 云原生的一线实践,扫码关注,不错过更新。
本文已同步发布到公众号,欢迎留言交流。