在 Redis 中,你可以使用不同的方法进行数据备份和恢复。两种主要的方式是通过快照(snapshot)和通过持久化日志(append-only file,AOF 文件)。

1. RDB 快照

RDB 快照是一种将当前内存中的数据保存到磁盘上的快照,创建一个二进制文件。这个文件包含了 Redis 在某个时间点上的数据集。你可以手动执行快照,也可以配置 Redis 自动执行。

手动执行快照:
# 使用 SAVE 命令手动执行快照
redis-cli SAVE

自动执行快照:

在 Redis 配置文件中,你可以设置自动执行快照的条件和频率:
# 配置文件中的示例配置
save 900 1     # 在900秒(15分钟)内,如果至少有1个 key 发生变化,则执行快照
save 300 10    # 在300秒(5分钟)内,如果至少有10个 key 发生变化,则执行快照
save 60 10000  # 在60秒内,如果至少有10000个 key 发生变化,则执行快照

执行快照会生成一个 dump.rdb 文件,你可以将该文件复制到另一个地方作为备份。

2. AOF 文件

AOF 文件是一个持久化日志,记录了写命令的每个操作。这个文件允许你在服务器重新启动时重新执行写命令,从而还原数据。

启用 AOF 文件的方式是在配置文件中启用 AOF 持久化:
# 配置文件中启用 AOF
appendonly yes

然后,你可以使用 BGSAVE 命令来手动创建一个快照,或者等待 Redis 定期自动创建快照。

恢复数据

从 RDB 快照恢复

1. 将备份的 dump.rdb 文件复制到 Redis 数据目录。
2. 启动 Redis 服务器,它将读取并加载快照文件。
redis-server /path/to/redis.conf

从 AOF 文件恢复

1. 将备份的 AOF 文件复制到 Redis 数据目录。
2. 启动 Redis 服务器,它将读取并重新执行 AOF 文件中的写命令。
redis-server /path/to/redis.conf

请注意,使用 AOF 文件恢复可能会导致较长的启动时间,因为它需要重新执行写命令。选择使用 RDB 快照还是 AOF 文件,通常取决于你的需求和系统配置。有些环境可能同时使用两种方式,以提供额外的安全性。


转载请注明出处:http://www.zyzy.cn/article/detail/9082/Redis