Redis——AOF持久化

Redis的AOF持久化通过记录服务器执行的写命令来保存数据库状态。它涉及命令追加、文件写入同步及AOF重写过程。AOF文件在每次事件循环结束前可能被写入和保存,其同步策略由appendfsync选项控制。AOF重写用于减少文件体积,通过子进程执行,避免数据不一致问题,使用AOF重写缓冲区确保数据完整性。
摘要由CSDN通过智能技术生成

AOF持久化

AOF通过保存Redis服务器所执行的写命令来记录数据库状态

AOF持久化的实现

可以分为命令追加、文件写入、文件同步三个步骤

命令追加

当AOF持久化功能处于打开状态时,服务器执行完一个写命令之后,会以协议格式将被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾

AOF文件的写入的同步

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

服务器每次结束一个事件循环之前,它都会调用flushAppendOnlyFile函数,考虑是否需要将aof_buf缓冲区中的内容写入和保存到AOF文件里面

flushAppendOnlyFile函数的行为由服务器配置的appenfsync选项的值来决定

默认为everysec

AOF文件的载入与数据还原

数据库之要读入并重新执行一遍AOF文件里面的保存的写命令,就可以还原

 

AOF重写

AOF文件重写功能解决了AOF文件体积膨胀的问题

创建一个新的AOF文件,不包含任何浪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值