【Redis】持久化RDB与AOF

目录

RDB

触发机制:

一、手动触发:

二、自动触发

RDB文件处理: 

RDB优缺点:

AOF

工作流程:

开启AOF:

AOF缓冲区同步磁盘策略:

AOF重写

重启加载


Redis持久化:

能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据。

Redis有2种持久化策略:RDB与AOF

RDB

RDB持久化是把当前进程数据生成快照保存到硬盘的过程。

触发机制:

一、手动触发:

 save:

     阻塞当前Redis服务器,直到RDB过程完成为止。 对于内存比较大的实例会造成长时间阻塞,线上环境不建议使用。

     命令:DB saved on disk 

 bgsave:

     在后台异步执行快照操作,不会阻塞客户端的请求。

       Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。

二、自动触发

自己配置快照规则

save <seconds> <chages> 

save 900 1  // 当在900秒内被更改的key的数量大于1的时候,就执行亏按照

save 300 10

save 60 10000

RDB文件处理: 

 保存:

    RDB文件保存在dir配置指定的目录下,如果没有修改的话,在redis启动安装的目录下dup.rdb.

    可以通过config set dir {newDir}和config set dbfilename{newFileName}运行期动态执行,当下次运行时RDB文件会保存到新目录。

压缩:

        默认采用LZF算法对生成的RDB文件做压缩处理,压缩后的文件远远小于内存大小,默认开启。可通过参数config set rdbcompression {yes|no}动态修改。

RDB优缺点:

AOF

以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的。

实时持久化

工作流程:

 

开启AOF:

需要设置配置:appendonly yes,默认不开启

AOF文件名可以通过appendfilename配置设置,默认文件名是appendonly.aof

AOF缓冲区同步磁盘策略:

在Redis的配置文件中存在三种同步方式,它们分别是:

  appendfsync always     #每次有数据修改发生时都会写入AOF文件。

  appendfsync everysec  #每秒钟同步一次,该策略为AOF的缺省策略。

  appendfsync no          #从不同步。高效但是数据不会被持久化。

AOF重写

AOF通过追加写命令到文件实现持久化,因为不断追加命令,所以AOF文件体积逐渐变大,需要定期执行重写操作来看降低文件体积。

# 重写触发配置

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

重启加载

AOF和RDB 文件都可以用于服务器重启时的数据恢复。

如下表示Redis持久化文件加载流程:

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值