Redis 持久化 - RDB、AOF

Redis提供了两种持久化方式:RDB快照和AOF日志。RDB在指定时间间隔生成数据快照,适合大规模恢复但可能存在数据丢失风险;AOF记录所有写操作,保证数据完整性,但文件体积大,恢复速度慢。默认使用RDB,可以通过配置文件调整触发条件。AOF则记录每次写操作,确保数据完整性,但效率较低。在生产环境中,需要根据需求平衡数据完整性和性能选择合适的持久化策略。
摘要由CSDN通过智能技术生成

在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshop快照,它恢复时,是将快照文件直接读到内存里。

Redis会单独创建(fork)一个子进程来进行持久化,会将数据写入到一个临时文件中,待持久化过程结束了,再用这个临时文件替换上一次持久化好的文件,整个过程中,主进程时不进行任何io操作,这就确保了极高的性能。如果如果需要进行大规模的数据恢复,且对数据恢复的完整性不是非常敏感,那么RDB方式要比AOF方式更加的高效,RDB的缺点是最后一次持久化后的数据可能会丢失。

大部分情况下,默认是RDB,不需要修改配置。

RDB保存的触发时机

(1)save的规则满足的情况下,会地洞出发rdb规则;

(2)执行flushall 命令,也会出发我们的rdb规则;

(3)退出时,也会默认生成一个rdb文件。

恢复文件

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

(2)如果不清楚存放到电脑的哪里,可输入如下命令查看

config get  dir

 

优点:

(1)适合大规模的数据恢复(dump.rdb)。

(2)对数据的完整行要求不高,也可以使用rdb

缺点:

(1)有一定的时间间隔,如果redis意外宕机了,这个最后一次修改的数据就没了。

(2)fork进程的时候,会占用内存空间。

在生产环境,我们需要经常备份rdb文件。

---------------------------------------------------------------------------------------------------------------------

AOF

Append Only  File

将我们所有执行的命令都记录下来,恢复的时候,就会把这个文件全部执行一遍。

它会以日志的形式来记录每一个写操作,将redis执行过程的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,启动之初,会读取文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次,已完成数据恢复的工作。

配置文件中的配置:

默认是不开启的! 

优点:

(1)每次修改都同步,文件的完整性更加好。

(2)每秒同步一次,可能丢失一秒的数据。

(3)从不同步,效率最高。

缺点:

(1)数据文件大小来说,aof远远大于rdb,数据修复的数据非常慢。

(2)运行效率比rdb慢,所以我们redis默认的配置是rdb持久化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值