后端岗位面试题更新 2026-08-05

请解释 Redis 中 Big Key 的概念,并说明它会造成哪些影响,以及有哪些应对和处理手段?

后端开发性能优化风险判断技术原理Redis

考察说明

考查对 Redis 大键问题的理解及实际处理能力

回答思路

  1. 【回答框架 1】Big Key 是指单个 key 的 value 过大,通常超过 1MB 或包含大量元素(如百万级哈希字段)。它会导致内存占用不均、网络传输阻塞、阻塞操作(如删除、获取)耗时增加,影响 Redis 性能。
  2. 【回答框架 2】影响方面:一是客户端请求阻塞,因为处理大 key 的序列化传输耗时;二是删除大 key 时可能阻塞主线程;三是内存碎片和持久化压力,AOF 重写或 RDB 快照可能因大 key 而变慢或失败。
  3. 【回答框架 3】解决方案:拆分大 key,如将大哈希按字段分片到多个 key;使用合适的数据结构,避免不必要的集合过大;对删除操作使用异步删除(unlink)或分批删除;监控大 key,通过 scan 和 bigkeys 命令定期排查。
  4. 【关键点 1】大 key 判定标准通常为 value 大于 1MB 或集合元素超万级
  5. 【关键点 2】主要危害包括阻塞主线程、网络拥塞和持久化压力增大
  6. 【关键点 3】可拆分、压缩、优化数据结构,并用异步删除降低阻塞风险
  7. 【关键点 4】需借助 scan 等命令主动发现大 key,避免全量键扫描
  8. 【易错点 1】误用 keys 命令扫描全库,会造成阻塞;应使用 scan 游标遍历
  9. 【易错点 2】删除大 key 时直接 del 会阻塞,应使用 unlink 或分批删除
  10. 【易错点 3】仅靠拆分可能破坏业务逻辑,需权衡数据访问模式