Redis持久化

Redis持久化

RDB

什么是RDB

在这里插入图片描述

在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时将快照文件直接读取到内存里。
Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程,主进程是不进行任何的IO操作的。这确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF更加高效。RDB的缺点是最后一次持久化后的数据可能丢失

RDB保存的文件默认是dump.rdb

# The filename where to dump the DB
dbfilename dump.rdb

触发机制

1、save的规则满足的情况下,会自动触发rdb规则
2、执行flushall命令,会自动触发rdb规则
3、退出redis,会自动触发rdb规则

备份完成后会自动生成一个rdb文件

如何恢复rdb文件

1、只需要将rdb文件放在redis启动目录就可以,redis启动的时候会自动检查dump.rdb恢复其中的数据。

优点:
1、适合大规模的数据恢复!dump.rdb
2、对数据的完整性的要求不高
缺点:
1、需要一定的时间间隔进行操作,如果redis意外宕机了,最后一次修改的数据就没有了
2、fork进程的时候,会占用一定的内存空间

AOF

什么是AOF

在这里插入图片描述

以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来,只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据,Redis重启的话就根据AOF文件的内容将写指令从前往后执行一次以完成数据的恢复工作。效率比较低。
AOF保存的是appendonly.aof格式的文件

# Please check http://redis.io/topics/persistence for more information.

appendonly no

# The name of the append only file (default: "appendonly.aof")

appendfilename "appendonly.aof"

默认不开启,需手动修改为yes启用aof。

如果aof文件有错误,redis是启动不起来的,可以使用redis-check-aof --fix appendonly.aof修复aof文件

优点:
1、每一次修改都同步,文件的完整性会更好
2、每秒同步一次,可能会丢失一秒的数据
3、从不同步,效率最高
缺点:
1、相对于数据文件来说,aof远远大于rdb,修复的速度也比rdb慢
2、aof运行效率要比rdb慢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值