1-1 Redis 的 RDB 持久化方案,其实就是同时使用 RDB 和 AOF 两种持久化方式。RDB 会把 Redis 中的数据定时保存到磁盘上,AOF 则会把 Redis 执行的每一条命令记录下来,也保存到磁盘上。这样,即使 Redis 服务器宕机了,也可以从磁盘上恢复数据。
2-1 RDB 的原理很简单,就是在指定的时间间隔内,把 Redis 内存中的数据快照保存到磁盘上。AOF 的原理稍微复杂一点,它会在 Redis 执行每一条命令之后,把命令记录到一个日志文件里。这样,当 Redis 重启的时候,就可以通过回放日志文件里的命令,来恢复数据。
3-1 Redis 4.0 版本之后推出的混合持久化方案。它结合了 RDB 和 AOF 的优点,可以更快地恢复数据,而且占用的磁盘空间也更少。
混合持久化方案的实现原理,其实就是在 AOF 文件中,记录 RDB 文件的生成过程。这样,在 Redis 重启的时候,就可以先加载 RDB 文件,然后再重放 AOF 文件中的增量命令,来恢复数据。
要开启混合持久化,只需要在 Redis 的配置文件中,把 aof-use-rdb-preamble 选项设置为 yes 就可以了。
3-2 在 Redis 4.0 之前,RDB 和 AOF 的持久化配置是分开的。要配置 RDB,可以在配置文件中设置 save 参数,来指定触发 RDB 快照的条件。要配置 AOF,可以在配置文件中设置 appendonly 参数,来开启或关闭 AOF 功能。还可以设置 appendfsync 参数,来控制 AOF 文件的同步策略。
在Redis 4.0 以后,RDB 并不是默认的持久化方式。默认情况下,Redis 会使用混合