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

在使用 Redis RDB 持久化并持续写入某个 key 时,如何避免日志(指内存中键的修改)导致的数据膨胀问题?请说明你的解决方案。

Moka后端开发专业服务性能优化技术原理问题排查Redis

考察说明

考察对 Redis 内存模型、RDB 持久化特性及 key 覆盖写入的内存回收机制的理解

回答思路

  1. 指出 RDB 是快照,不记录每个写操作的日志,膨胀问题实际是频繁覆盖同一 key 导致的内存分配器碎片或旧值残留
  2. 说明 Redis 在覆盖 key 时会释放旧值内存,但分配器碎片和内存碎片率(mem_fragmentation_ratio)可能导致膨胀
  3. 给出解决方案:使用合理的内存分配策略、定期执行 MEMORY PURGE(如果可用)、监控碎片率并考虑重启以整理内存