高频面试题:简单介绍Redis中AOF持久化和AOF文件与RDB持久化的区别

aof,rdb是两种redis持久化的机制。用于crash(崩溃)后,redis的恢复。

 

rdb的特性如下:

        fork一个进程,遍历hash table,利用copy on write,把整个db dump保存下来。执行save, shutdown, slave 命令会触发这个操作。

        粒度比较大,如果在save, shutdown, slave 之前crash了,则中间的操作无法恢复。

aof的特性如下:

        把写操作指令,持续地写到一个类似日志文件中。(类似于从postgresql等数据库导出sql一样,只记录写操作)

        粒度较小,crash之后,只有crash之前没有来得及做日志的操作无法恢复。

区别

  • 一个是持续的用日志记录写操作,crash后利用日志恢复;
  • 一个是平时写操作的时候不触发写,只有手动提交save命令,或者是关闭命令时,才触发备份操作。

选择的标准

        就是看系统是愿意牺牲一些性能,换取更高的缓存一致性(aof),还是愿意写操作频繁的时候,不启用备份来换取更高的性能,待手动运行save的时候,再做备份(rdb)。rdb这个就更有些 eventually consistent的意思了。

因为AOF文件的更新频率比RDB文件的更新频率高,所以:

  1. 如果服务器开启了AOF持久化功能,那么服务器会优先使用AOF文件来还原数据库状态。
  2. 只有在AOF持久化功能处于关闭状态的时候,服务器才会使用RDB文件来还原数据库状态。

祝大家都能成功入职心仪的公司!


如有错误,欢迎指正

Thanks

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hah杨大仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值