Redis 提供了多种数据备份的方法,主要包括 RDB(Redis Database)快照和 AOF(Append Only File)日志两种方式。以下是这两种方法的详细说明:
RDB 是 Redis 默认的持久化方式,它会在指定的时间间隔内生成数据集的时间点快照(snapshot)。你可以通过配置文件或命令行参数来设置 RDB 快照的触发条件。
在 redis.conf
文件中,你可以找到以下配置项来设置 RDB 快照:
# 保存快照的频率
save 900 1
save 300 10
save 60 10000
# 如果设置为 yes,则会禁用 RDB 持久化
stop-writes-on-bgsave-error no
上述配置表示:
你也可以通过 Redis 命令手动触发 RDB 快照:
SAVE
BGSAVE
SAVE
命令会阻塞 Redis 服务器直到快照完成,而 BGSAVE
命令会在后台执行快照操作,不会阻塞服务器。
AOF 持久化记录了服务器接收到的所有写操作命令,并在服务器启动时会重新执行这些命令来重建数据集。AOF 文件通常比 RDB 文件更大,但提供了更好的持久化保证。
在 redis.conf
文件中,你可以找到以下配置项来启用 AOF 持久化:
appendonly yes
appendfilename "appendonly.aof"
上述配置表示启用 AOF 持久化,并将 AOF 文件命名为 appendonly.aof
。
AOF 文件会随着时间的推移不断增长,为了控制文件大小,Redis 提供了 AOF 重写功能,它会创建一个新的 AOF 文件,只包含恢复当前数据集所需的最小命令集合。
你可以通过以下命令手动触发 AOF 重写:
BGREWRITEAOF
RDB 备份:
scp
命令将 RDB 文件复制到远程服务器:scp /var/lib/redis/dump.rdb user@remote_host:/path/to/backup/
AOF 备份:
scp
命令将 AOF 文件复制到远程服务器:scp /var/lib/redis/appendonly.aof user@remote_host:/path/to/backup/
RDB 恢复:
AOF 恢复:
通过以上方法,你可以有效地实现 Redis 数据的备份和恢复。