在Redis中,RDB、AOF和混合持久化机制是用来保障数据持久化的三种方式。
- RDB(Redis DataBase):是Redis默认的持久化方式。在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它捕获的是某一时刻的数据。
# 在redis.conf中配置
save 900 1 # 900秒内至少1个键被修改则触发保存
save 300 10 # 300秒内至少10个键被修改则触发保存
save 60 10000 # 60秒内至少10000个键被修改则触发保存
dbfilename dump.rdb # 指定RDB文件名
dir /path/to/your/redis/directory # 指定RDB文件存储目录
- AOF(Append Only File):是另一种持久化方式。它记录每一个写操作,并在数据文件中追加记录这些写操作。
# 在redis.conf中配置
appendonly yes # 开启AOF持久化存储
appendfilename "appendonly.aof" # AOF文件名
dir /path/to/your/redis/directory # 文件存储目录
# AOF文件的更新频率
appendfsync always # 每次写入都同步,最慢但最安全
appendfsync everysec # 每秒同步一次,折衷方案
appendfsync no # 完全依赖操作系统,最快但不安全
- 混合持久化机制:是Redis 4.0以上版本提出的新概念。它结合了RDB快照和AOF日志,使用RDB来快速恢复数据,同时使用AOF来保证数据的完整性。
# 在redis.conf中配置
aof-use-rdb-preamble yes # 开启混合持久化机制
混合持久化机制会在AOF文件中以RDB的格式存储一个快照,当Redis重启时,它会先加载AOF文件,如果检测到RDB的快照,就会直接加载RDB快照,然后再重放AOF文件中剩余的指令。这样既保证了恢复速度,也保证了数据的完整性。