redis持久化机制的简要介绍(快照 RDB 和 只追加文件 AOF)

        redis支持两种不同的持久化操作,一种是快照(snapshoting ,rdb),一种是只追加文件(append-only file ,aof)。本文分别对两种持久化方式在概念、配置、作用上作扼要介绍,旨在作学习记录,读者亦可作java面试的简要回答。部分内容转载JavaGuide。

 1、RDB持久化(Redis DataBase)

        Redis 可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本。Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本,还可以将快照留在原地以便重启服务器的时候使用。 

        配置方面,Redis默认是RDB持久化,在配置文件redis.config的有关的配置是:

save 900 1            #在900s内,至少有一个key发生变化,redis就会自动触发BASAVE命令来创建快照
save 300 10          #同理⬆
save 60   10000

        因此,在大规模数据恢复中,相比aof,rdb会更高效,但缺点是最后一次持久化后的数据可能会丢失,比如在59s的时候宕机,未能触发save命令,造成59s内的数据无法保存 。

2、AOF持久化(appedn-only file)

        开启 AOF 持久化后每执行一条会更改 Redis 中的数据的命令,Redis 就会将该命令写入到内存缓存 中,然后再根据 appendfsync 配置来决定何时将其同步到硬盘中的 AOF 文件。

        配置方面,默认情况下 Redis 没有开启 AOF方式的持久化,可以通过 appendonly 参数开启。在在配置文件redis.config的有关的配置是:

appendfsync always       #每次有数据修改发生时都会同步到AOF文件,这样会严重降低Redis的速度

appendfsync everysec   #每秒钟同步一次aof文件,至多丢失一s的数据

appendfsync no              #让操作系统决定何时进行同步

        与快照持久化相比,AOF 持久化的实时性更好,因此已成为主流的持久化方案。如果同时开启两种持久化方式,重启时会优先载入aof文件来恢复,因为aof方式的完整性更高。

 补充点 

        RDB方式的保存文件为rump.rdb,AOF方式 的保存文件为appendonly.aof,保存的位置都相同,可通过配置文件中dir配置来设置。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值