Skip to content
进阶

一句话答案

大 Key(String>10KB/集合>5000 元素)阻塞主线程,发现用 --bigkeys,解决:拆分/压缩/UNLINK 异步删除。

核心要点

发现: redis-cli --bigkeys / MEMORY USAGE key

解决:

  1. 拆分:Hash 分片 / List 分段
  2. 压缩:序列化压缩
  3. 删除:UNLINK(异步删除,不阻塞)

预防: 设计时控制 Value 大小和集合元素数量

追问与易错

追问方向:

  • 大 Key 对 Cluster 影响?
  • UNLINK 和 DEL 区别?
  • 怎么预防大 Key?

易错点:

  • ❌ 用 DEL 删大 Key——会阻塞,应用 UNLINK
  • ❌ scan 出大 Key 就删——需评估影响

💡 记忆锚点

大Key = 行李超重:超重行李(String>10KB/集合>5000)上传送带会卡住整条线(阻塞主线程)。解决三板斧:拆箱(Hash分片)、压缩(序列化)、异步丢弃(UNLINK而非DEL,后台慢慢清理不堵路)。