Redis(十五):AOF持久化,java实现断点续传原理

本文介绍了Redis的AOF持久化机制,包括AOF文件的写入与同步策略(always、everysec、no),以及三种方式的优缺点。详细讲解了AOF文件的载入过程和重写功能,旨在减少文件体积和提高还原速度。同时,讨论了AOF后台重写(BGREWRITEAOF命令)及其避免阻塞服务器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//…

};

举个栗子

set msg 123

当执行完上述这个命令时,就会将这条命令变成协议形式,然后追加到aof_buf缓冲区的末尾(此时还没有写入AOF文件中)

AOF文件的写入与同步

Redis的服务器进程就是一个事件循环(loop),这个循环中的文件事件负责接收客户端的命令请求,以及向客户端发送命令回复,而时间事件则负责执行像serverCron函数这样需要定时运行的函数。

服务器每次结束一个事件循环的之前,会调用flushAppendOnlyFile函数,考虑是否需要将aof_buf缓冲区中的内容写入和保存到AOF文件里面,这个过程伪代码表示如下

def eventLoop(); //事件循环,即整个Redis进程

while True:

//处理文件事件,接收用户命令和处理命令后返回结果给用户

//再处理的时候,aof_buf缓冲池可能会添加新内容

processFileEvents();

//处理时间事件

processTimeEvents();

//考虑是否将aof_buf缓冲中的内容写入和保存到AOF文件里面

flushAppendOnlyFile();

End While

End eventLoop;

flushAppendOnlyFile函数的行为由服务器配置的appendfsync选项(fsync代表同步)的值来决定,各个不同值产生的行为如下面所示

下面是配置文件里面的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值