欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

Redis 持久化选型:RDB 快照与 AOF 重写对主线程的影响

发表于:|最后更新:|分类:数据库与存储|阅读:1946 次
本文标签:Redis持久化RDBAOF

Redis 的 RDB 快照通过 fork() 创建子进程进行 Copy-On-Write 写时复制,AOF 重写同样依赖子进程。虽然主线程不直接参与磁盘 I/O,但 fork() 的页表复制与 COW 期间的内存页拷贝会在高写入负载下造成明显的主线程延迟抖动。

一、持久化关键配置与延迟观测

ini
# 关闭自动 RDB,改由运维在低峰期触发
save ""

# 开启 AOF 并采用 everysec 折中策略
appendonly yes
appendfsync everysec
# AOF 重写期间不阻塞 fsync,降低写延迟
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
bash
# 观测 fork 耗时与 COW 内存
redis-cli info stats | grep -E "latest_fork_usec"
redis-cli info memory | grep -E "used_memory_rss|mem_fragmentation_ratio"