码迷,mamicode.com
首页 > 数据库 > 详细

redis的 rdb 和 aof 持久化的区别

时间:2014-12-16 17:17:23      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:style   ar   color   os   sp   for   strong   on   文件   

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

rdb的特性如下:

Code:

fork一个进程,遍历hash table,利用copy on write,把整个db dump保存下来
save, shutdown, slave 命令会触发这个操作。
粒度比较大,如果save, shutdown, slave 之前crash了,则中间的操作没办法恢复

aof有如下特性:

Code:

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

可以设置为每秒都备份。appendfsync 的值设置为everysec

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

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

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


所以主redis aof方式换取更高的缓存一致性,从redis rdb 不启用备份来换取更高的性能

redis的 rdb 和 aof 持久化的区别

标签:style   ar   color   os   sp   for   strong   on   文件   

原文地址:http://my.oschina.net/wojibuzhu/blog/356744

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!