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

当 Redis 执行 RDB 快照生成操作时,它对同时到来的客户端请求采取何种处理策略?

后端开发技术原理Redis

考察说明

考查对 Redis 持久化机制中 RDB 生成过程与请求处理并发关系的理解。

回答思路

  1. 【回答框架 1】Redis 生成 RDB 文件时,默认采用 fork 子进程方式。主进程 fork 后继续处理客户端请求,子进程负责将数据写入临时 RDB 文件,完成后替换旧文件。
  2. 【回答框架 2】fork 依赖操作系统写时复制机制。子进程共享主进程内存快照,主进程后续写操作会复制受影响的内存页,因此请求可正常处理,但可能增加内存和 IO 开销。
  3. 【回答框架 3】若开启 AOF 重写或 RDB 保存,主进程在 fork 时可能短暂阻塞,尤其在内存较大或系统负载高时,阻塞时间与内存大小相关。
  4. 【回答框架 4】RDB 生成期间,主进程正常响应读写请求,但写操作会触发 COW 复制,可能造成额外内存消耗;极端内存不足时可能影响稳定性。
  5. 【回答框架 5】RDB 文件生成是异步的,不阻塞请求处理,但需关注 fork 阻塞和 COW 内存峰值,可通过调整配置如减少 fork 频率或使用低峰期执行。
  6. 【关键点 1】RDB 生成采用 fork 子进程,主进程不阻塞请求处理。
  7. 【关键点 2】写时复制机制使主进程写操作复制内存页,增加内存和 IO 开销。
  8. 【关键点 3】fork 瞬间可能阻塞主进程,阻塞时长与内存大小和系统状态相关。
  9. 【关键点 4】RDB 生成期间请求处理正常,但需警惕内存峰值和性能影响。
  10. 【关键点 5】可通过合理配置保存策略和监控 fork 耗时来优化。
  11. 【易错点 1】误认为 RDB 生成期间请求被阻塞或丢弃,实际请求正常处理。
  12. 【易错点 2】忽略写时复制带来的内存放大,导致内存不足或 OOM 风险。
  13. 【易错点 3】认为 RDB 生成是纯异步无任何影响,忽略 fork 阻塞和 COW 开销。