Redis持久化RDB和AOF区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vtopqx/article/details/82497787


RDB和AOF都可以Redis的持久化,
两者有一定的区别:
Redis默认是开启RDB的,AOF默认关闭,需要手动开启;
RDB和AOF同时开启的情况下,会只加载AOF,

两者都有相应的check命令,来进行检测修复--fix,

RDB
由系统fork出一个进程来执行
默认是根据自定义的时间间隔内发生的变化,来触发是否需要生成快照文件进行保存,

当然也可以使用命令来强制立刻保存,如:save...等命令

相关参数配置:
save 900 1
save 300 10
save 60 10000

优点:
1)恢复速度快,容易备份;

缺点:
1)由于是根据间隔生成快照,出现故障时会丢失间隔内数据;
2)如果数据过大,每次系统fork进程进行快照生成,相当消耗性能,有可能会导致终止客户端请求。

AOF
将Redis操作指令追加到以.aof结尾的文件中,默认是每秒(everysec)记录一次,
当aof文件超过大小时,系统会fork一个进程来对aof文件进行重写操作,即:auto-aof-rewrite。

相关参数配置:
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

优点:
1)记录内容完整,在数据恢复时丢失数据会比RDB少;

缺点:
1)操作记录较多,文件内容很大;
2)恢复速度比RDB慢;
3)由于记录频繁,相当耗性能;

最后,一般情况下推荐做主从同步时候,在slave端只做RDB快照生成,并且定时对RDB快照文件进行备份。
 

猜你喜欢

转载自blog.csdn.net/vtopqx/article/details/82497787