Redis 提供了 RDB 和 AOF 两种持久化方式来保存数据,当数据库发生故障时,可以通过这两种方式来恢复数据。
- RDB 持久化恢复:
RDB 是 Redis 默认的持久化方式,它会在指定的时间间隔内生成数据集的时间点快照(Snapshot)。这些快照文件可以用于备份、灾难恢复等场景。
恢复步骤如下:
- 首先,找到备份的 RDB 文件。通常情况下,它们会存储在服务器的默认目录下,例如
/var/lib/redis/
。 - 将 RDB 文件复制到 Redis 服务器的数据目录下,例如
/usr/local/redis/data/
。 - 修改 Redis 配置文件(通常为
redis.conf
),设置dbfilename
参数指向刚刚复制的 RDB 文件,例如:dbfilename dump.rdb
。 - 修改配置文件中的
dir
参数,指向 Redis 数据目录,例如:dir /usr/local/redis/data/
。 - 重启 Redis 服务,例如使用
systemctl restart redis
命令(具体命令取决于你的操作系统和安装方式)。 - Redis 服务启动后,它将自动从 RDB 文件中加载数据。
- AOF 持久化恢复:
AOF(Append Only File)持久化记录了 Redis 服务器接收到的所有写操作命令,当需要恢复数据时,可以通过重新执行这些命令来恢复数据。
恢复步骤如下:
- 首先,找到备份的 AOF 文件。通常情况下,它们会存储在服务器的默认目录下,例如
/var/lib/redis/
。 - 将 AOF 文件复制到 Redis 服务器的数据目录下,例如
/usr/local/redis/data/
。 - 修改 Redis 配置文件(通常为
redis.conf
),设置appendfilename
参数指向刚刚复制的 AOF 文件,例如:appendfilename appendonly.aof
。 - 修改配置文件中的
dir
参数,指向 Redis 数据目录,例如:dir /usr/local/redis/data/
。 - 修改配置文件中的
appendfsync
参数,选择合适的同步策略,例如:appendfsync everysec
(默认值)。 - 重启 Redis 服务,例如使用
systemctl restart redis
命令(具体命令取决于你的操作系统和安装方式)。 - Redis 服务启动后,它将自动重新执行 AOF 文件中的命令来恢复数据。
注意:在恢复数据之前,请确保 Redis 服务已关闭。恢复完成后,可以使用 redis-cli ping
命令来检查 Redis 服务是否正常运行。