怎么防止AOF文件越来越大?

1 个回答

  • 东方朔
    重新审视自己,什么使你快乐,什么就是眼下最珍贵。
    为了防止AOF文件越来越大,可以通过执行BGREWRITEAOF命令进行AOF重写,会fork子进程出来,读取当前数据库的键值对信息,生成所需的写命令,写入新的AOF文件。在生成期间,父进程继续正常处理请求,执行修改命令后,不仅会将命令写入aof_buf缓冲区,还会写入重写aof_buf缓冲区。当新的AOF文件生成完毕后,子进程父进程发送信号,父进程将重写aof_buf缓冲区的修改命令写入新的AOF文件,写入完毕后,对新的AOF文件进行改名,原子地(atomic)地替换旧的AOF文件。 AOF重写命令可以手动执行,在满足一些条件时,Redis也会自动触发。自动触发的条件如下: 1. 没有 BGSAVE 命令在执行。 2. 没有 BGREWRITEAOF 在执行。 3. 当前AOF文件大小 > server.aof_rewrite_min_size(默认为1MB)。 4. 当前AOF文件大小和最后一次AOF重写后的大小之间的比率大于等于指定的增长百分比(默认为1倍,100%,也就是当前AOF文件大小>=上次重写后文件的2倍后)
    发布于 2022-02-03 13:30 •IP属地 湖北
    举报
    评论
    收藏