5分钟理解Redis持久化( 二 )


三、RDB和AOF比较RDB 和 AOF, 我应该用哪一个? 建议使用AOF 。
5分钟理解Redis持久化文章插图
redis启动时如果既有rdb文件又有aof文件则优先选择aof文件恢复数据 , 因为aof一般来说数据更全一点 。
四、Redis 4.0 混合持久化重启 Redis 时 , 我们很少使用 RDB来恢复内存状态 , 因为会丢失大量数据 。 我们通常使用 AOF 日志重放 , 但是重放 AOF 日志性能相对 RDB来说要慢很多 , 这样在 Redis 实例很大的情况下 , 启动需要花费很长的时间 。
Redis 4.0 为了解决这个问题 , 带来了一个新的持久化选项——混合持久化 。 通过如下配置可以开启混合持久化:
# aof-use-rdb-preamble yes如果开启了混合持久化 , AOF在重写时 , 不再是单纯将内存数据转换为RESP命令写入AOF文件 , 而是将重写这一刻之前的内存做RDB快照处理 , 并且将RDB快照内容和增量的AOF修改内存数据的命令存在一起 , 都写入新的AOF文件 , 新的文件一开始不叫appendonly.aof , 等到重写完新的AOF文件才会进行改名 , 原子的覆盖原有的AOF文件 , 完成新旧两个AOF文件的替换 。
于是在 Redis 重启的时候 , 可以先加载 RDB 的内容 , 然后再重放增量 AOF 日志就可以完全替代之前的AOF 全量文件重放 , 因此重启效率大幅得到提升 。
5分钟理解Redis持久化文章插图
你懂得越多 , 能懂你的就越少 。