Redis提供了两种主要的数据持久化方法:RDB(Redis Database Backup)和AOF(Append Only File)。
- RDB(Redis Database Backup): RDB是Redis默认的持久化方式。它会在指定的时间间隔内生成数据集的时间点快照(Snapshot)。这些快照文件可以用于备份、灾难恢复等场景。
要配置RDB持久化,你需要在redis.conf配置文件中设置以下选项:
save
:定义在多长时间内至少有N个键值变更时,会触发一次快照。例如,save 900 1
表示900秒内有1个键值变更时,会触发一次快照。你可以使用逗号分隔的多个键值对来设置多个条件。dir
:定义快照文件的存储目录。例如,dir /var/lib/redis
表示将快照文件存储在/var/lib/redis
目录下。save900 1
、save300 10
、save60 10000
等:这些是示例配置,表示在不同时间间隔内满足一定条件时触发快照。
在配置好RDB持久化后,Redis会在后台自动执行SAVE
或BGSAVE
命令来创建快照文件。你也可以手动执行SAVE
或BGSAVE
命令来立即创建快照。
- AOF(Append Only File): AOF持久化记录了Redis服务器接收到的所有写操作命令,并在服务器启动时重新执行这些命令来恢复数据。AOF持久化提供了更高的数据安全性,但可能会降低Redis的性能。
要配置AOF持久化,你需要在redis.conf配置文件中设置以下选项:
appendonly
:启用AOF持久化,将其值设置为yes
。appendfilename
:定义AOF文件的名称。例如,appendfilename "appendonly.aof"
表示将AOF文件命名为appendonly.aof
。dir
:定义AOF文件的存储目录。例如,dir /var/lib/redis
表示将AOF文件存储在/var/lib/redis
目录下。sync
:定义AOF文件的同步策略。有三个可选值:no
(默认值,不进行同步),everysec
(每秒同步一次)和always
(每次写操作都同步)。
在配置好AOF持久化后,Redis会在后台自动执行BGREWRITEAOF
命令来重写AOF文件。你也可以手动执行BGREWRITEAOF
命令来强制重写AOF文件。
注意:在启用AOF持久化时,请确保Redis的dir
配置指向的目录具有适当的读写权限,以便在服务器启动时能够正确读取AOF文件并恢复数据。