Reids持久化-AOF

2023-11-02  本文已影响0人  风雪_夜归人

简介

AOF(Appen Only File)
以日志的形式记录服务器所处理的每一个更改操作,但操作过多。aof文件过大时,加载文件恢复数据会非常慢,为解决该问题,Redis支持aof文件重写,通过重写aof可以生成以给恢复当前数据的最少命令集。

所以流程大致分为两步,一是命令的实时写入,二是对aof文件的重写

命令写入流程:命令写入=》追加到aof_buf =》同步到aof磁盘(考虑到磁盘IO性能增加缓冲)

aof重写可以手动或自动触发

命令触发:bgrewriteaof
自动触发:根据配置规则来触发(整体时间和Redis的定时任务频率有关系)

在写入aof日志文件时,如果reids服务宕机,则日志文件会出格式错误,重启服务时,服务器会拒绝载入这个aof文件,此时可以通过以下命令修复aof并恢复数据
redis-check-aof -fix file.aof

RDB在redis.con中的配置

AOF-Fork原理

image.png

在重写期间,由于主机进程依然在响应命令,为了保证最终备份的完整性;因此它依然会写入旧的AOF file中,如果重写失败,能够保证数据不丢失

为了把重写期间的响应写入信息也写入到新的文件中,因此也会为子进程保留一个buf,防止新写的file丢失数据

重写是直接把当前内存的数据生成对应命令,并不需要读取老的AOF文件进行分析、命令合并

AOF文件直接采用文本协议,主要是兼容性好、追加方便、可读性高可认为修改修复

AOF性能分析

优点
缺点
上一篇 下一篇

猜你喜欢

热点阅读