同时使用RDB持久化和AOF持久化
在Redis 4.0的RDB-AOF混合持久化功能出现之前,不少追求安全性的 Redis使用者都会同时使用RDB持久化和AOF持久化,但随着RDB-AOF混 合持久化功能的推出,同时使用两种持久化功能已经不再必要。
如果用户使用的是Redis 4.0之前的版本,那么同时使用RDB持久化和 AOF持久化仍然是可行的,只要注意以下问题即可:
-
同时使用两种持久化功能需要耗费大量系统资源,系统的硬件必须 能够支撑运行这两种功能所需的资源消耗,否则会给系统性能带来影 响。
-
Redis服务器在启动时,会优先使用AOF文件进行数据恢复,只有在 没有检测到AOF文件时,才会考虑寻找并使用RDB文件进行数据恢复。
-
当Redis服务器正在后台生成新的RDB文件时,如果有用户向服务器 发送BGREWRI-TEAOF命令,或者配置选项中设置的AOF重写条件被满足 了,那么服务器将把AOF重写操作推延到RDB文件创建完毕之后再执 行,以此来避免两种持久化操作同时执行并争抢系统资源。
-
同样,当服务器正在执行BGREWRITEAOF命令时,用户发送或者被触 发的BGSAVE命令也会推延到BGREWRITEAOF命令执行完毕之后再执行。
总的来说,在数据持久化这个问题上,Redis 4.0及之后版本的使用者 都应该优先使用RDB-AOF混合持久化;对于Redis 4.0之前版本的使用 者,因为RDB持久化更接近传统意义上的数据备份功能,而AOF持久化 则更接近于传统意义上的数据持久化功能,所以如果用户不知道自己 具体应该使用哪种持久化功能,那么可以优先选用AOF持久化作为数据 持久化手段,并将RDB持久化用作辅助的数据备份手段。