Redis——数据持久化
RDB持久化
fork一个进程,遍历hash table,利用copy on write,把整个db dump保存下来。save, shutdown, slave 命令会触发这个操作。粒度比较大,如果save, shutdown, slave 之前crash了,则中间的操作没办法恢复。
AOF持久化
把写操作指令,持续的写到一个类似日志文件里(记录写操作)粒度较小,crash之后,只有crash之前没有来得及做日志的操作没办法恢复。
两种区别就是,一个是持续的用日志记录写操作(存储命令),crash后利用日志恢复;一个是平时写操作的时候不触发写,只有手动提交save命令,或者是关闭命令时,才触发备份操作(存储数据)。
这两种持久化方式分别在不同的应用场景,如果你想要更高的缓存一致性牺牲一些系统性能可以选择使用AOF持久化的方式
如果你想要更高的性能,牺牲一定的缓存一致性则可以使用RDB这种方法,现在更倾向于使用RDB的方式。