外观
一句话答案
大 Key(String>10KB/集合>5000 元素)阻塞主线程,发现用 --bigkeys,解决:拆分/压缩/UNLINK 异步删除。
核心要点
发现: redis-cli --bigkeys / MEMORY USAGE key
解决:
- 拆分:Hash 分片 / List 分段
- 压缩:序列化压缩
- 删除:UNLINK(异步删除,不阻塞)
预防: 设计时控制 Value 大小和集合元素数量
追问与易错
追问方向:
- 大 Key 对 Cluster 影响?
- UNLINK 和 DEL 区别?
- 怎么预防大 Key?
易错点:
- ❌ 用 DEL 删大 Key——会阻塞,应用 UNLINK
- ❌ scan 出大 Key 就删——需评估影响
💡 记忆锚点
大Key = 行李超重:超重行李(String>10KB/集合>5000)上传送带会卡住整条线(阻塞主线程)。解决三板斧:拆箱(Hash分片)、压缩(序列化)、异步丢弃(UNLINK而非DEL,后台慢慢清理不堵路)。