Redis 提供了两种持久化方法:RDB(Redis DataBase)和 AOF(Append Only File)。这里将介绍如何使用这两种方法进行数据备份。
RDB 是 Redis 默认的持久化方式。它会在指定的时间间隔内生成数据集的时间点快照(Snapshot)。这些快照文件可以用于备份、灾难恢复等场景。
配置 RDB 持久化:
在 redis.conf 配置文件中,找到或添加以下配置项:
save 900 1
save 300 10
save 60 10000
这些配置项表示在 900 秒内有 1 个键值变更、300 秒内有 10 个键值变更或 60 秒内有 10000 个键值变更时,Redis 会自动生成一个 RDB 文件。
生成 RDB 文件:
在 redis-cli 中,使用以下命令手动触发 RDB 生成:
SAVE 或 BGSAVE
备份 RDB 文件:
Redis 会将生成的 RDB 文件保存在服务器的默认目录下(通常是 /var/lib/redis/)。你可以将这个目录复制到其他服务器,以实现数据备份。
AOF 持久化记录了 Redis 服务器接收到的所有写操作命令,并在服务器启动时重新执行这些命令来恢复数据。AOF 文件可以用于备份和灾难恢复等场景。
配置 AOF 持久化:
在 redis.conf 配置文件中,找到或添加以下配置项:
appendonly yes
appendfilename "appendonly.aof"
这些配置项表示开启 AOF 持久化,并将 AOF 文件命名为 appendonly.aof。
生成 AOF 文件:
在 redis-cli 中,使用以下命令手动触发 AOF 生成:
BGREWRITEAOF
备份 AOF 文件:
Redis 会将生成的 AOF 文件保存在服务器的默认目录下(通常是 /var/lib/redis/)。你可以将这个目录复制到其他服务器,以实现数据备份。
注意:RDB 和 AOF 持久化方法各有优缺点。RDB 生成的快照文件较小,恢复速度较快,但可能丢失最近的更改。AOF 持久化记录了所有写操作命令,因此数据更加完整,但生成的文件较大,恢复速度较慢。在实际应用中,可以根据需求选择合适的持久化方法,甚至可以将两者结合使用,以达到更好的数据保护效果。