Redis
- 分类
- 分布式系统
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/29 00:57
答案
AOF日志文件过大会触发重写机制。重写机制就是,当文件过大的时候,主进程会创建一个bgrewriteaof子进程来执行重写操作,子进程会对日志文件进行压缩,具体而言,就是获得主进程的数据副本,并为每条记录生成一句语句,记录到日志文件中。从而实现压缩的效果。在这个过程当中,如果主进程进行数据修改的话,就会触发写时复制,从而保证数据安全。此外,为了避免主进程修改数据,而AOF日志中没有相应的修改,主进程会在每次执行命令的时候,分别写入aof重写缓冲区,aof缓冲区,以及内存数据,当aof子进程执行完毕之后,会给主进程发一个信号,主进程收到信号后,就会将aof重写缓冲区的内容追加到aof文件中,并且对现有文件进行覆盖,从而保证了数据的正确性
相关题目(5)
什么是热点 key,如何处理?共源 1
分布式系统Redis
watch dog 机制是什么?共源 1
分布式系统并发锁Redis
Redis 如何实现分布式锁?共源 1
分布式系统锁Redis
分布式系统并发Redis
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(数据库).md
knowledge_noteQuestion 109: AOF 日志过大,会触发什么机制?介绍一下
Source answer: AOF日志文件过大会触发重写机制。重写机制就是,当文件过大的时候,主进程会创建一个bgrewriteaof子进程来执行重写操作,子进程会对日志文件进行压缩,具体而言,就是获得主进程的数据副本,并为每条记录生成一句语句,记录到日志文件中。从而实现压缩的效果。在这个过程当中,如果主进程进行数据修改的话,就会触发写时复制,从而保证数据安全。此外,为了避免主进程修改数据,而AOF日志中没有相应的修改,主进程会在每次执行命令的时候,分别写入aof重写缓冲区,aof缓冲区,以及内存数据,当aof子进程执行完毕之后,会给主进程发一个信号,主进程收到信号后,就会将aof重写缓冲区的内容追加到aof文件中,并且对现有文件进行覆盖,从而保证了数据的正确性
Reviewed answer: 会触发 AOF 重写。Redis 通过 bgrewriteaof 子进程基于当前数据生成更紧凑的新 AOF 文件,主进程继续处理请求,并把新修改同时写入 AOF 缓冲区和重写缓冲区,待子进程完成后再追加重写期间的增量并替换旧文件。