"同时开启RDB和AOF:在这种情况下当 redis 重启的时候优先加载AOF文件来恢复原始数据,因为在通常情况下AOF文件保存的数据要比RDB文件保存的数据集要完整。"

建议不要只使用AOF,因为:

  1. RDB更适合备份数据库(AOF在不断变化不好备份)
  2. RDB可以实现快速重启
  3. RDB不会有AOF可能潜在的Bug,可以作为万一的手段

当RDB和AOF同时开启时,Redis重启时会优先加载AOF文件来恢复数据。这是因为AOF文件保存的数据通常比RDB文件更完整。

在配置方面,需要在redis.conf中同时设置:

  • RDB的配置(如save 900 1等)
  • AOF的配置(appendonly yes)
# RDB配置
save 900 1
save 300 10
save 60 10000

# AOF配置
appendonly yes
appendfsync everysec
auto-aof-rewrite-min-size 64mb
auto-aof-rewrite-percentage 100

Redis的配置中,RDB和AOF的路径由以下参数共同决定:

  1. dir - 指定工作目录(RDB和AOF都保存在这个目录下)
  2. dbfilename - RDB文件的文件名(默认dump.rdb
  3. appendfilename - AOF文件的文件名(默认appendonly.aof
dir /data/redis/backups/
dbfilename redis-rdb-$(date +%Y%m%d).rdb
appendfilename redis-aof-$(date +%Y%m%d).aof

如果同时开启RDB和AOF,当需要恢复数据时,Redis会优先使用AOF文件。如果AOF文件损坏,也可以使用RDB文件进行恢复。

生产环境中通常建议同时开启RDB和AOF,以获得最佳的数据持久化保障。