Redis - RDB持久化与AOF持久化

RDB持久化与AOF持久化可以同时存在,但重启时,AOF文件会被优先用于恢复数据。

RDB持久化

RDB文件是压缩过的二进制文件,用于保存和还原Redis服务器所有数据库中的所有键值对数据。

SAVE命令由服务器进程直接执行,是阻塞的命令;BGSAVE由子进程(注意不是子线程)执行保存,不会阻塞服务器。

服务器状态中会保存所有save选项设置的保存条件,当任意一个保存条件被满足时,BGSAVE会被自动执行。

不同类型的键值对在RDB文件中以不同的形式保存。

AOF持久化

AOF文件保存所有修改过数据库的写命令记录数据库状态,所有命令都以Redis命令请求协议的格式保存。

为了避免频繁IO,命令请求会先保存在AOF缓冲区里,之后再定期写入AOF文件。

由于AOF文件的模式,随时间增加,AOF文件体积会逐渐增大,因此Redis提供了AOF重写功能,实际上来说,该功能是通过读取数据库中的键值对反向获得命令实现,其体积更小,状态一致。

后台重写AOF文件过程:

在AOF文件重写时,服务器会维护一个AOF重写缓冲区,在子进程创建新的AOF文件期间,记录服务器执行的所有写命令,当子进程完成AOF文件的生成后,将重写缓冲区内的所有内容追加到新的AOF文件末尾,此时服务器进程是阻塞的,不会产生新内容,待完成后,将新的AOF文件替换旧的文件,完成重写操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值