Redis 可以通过两种方式实现持久化:RDB(Redis Database)持久化和 AOF(Append-Only File)持久化。
RDB 持久化
RDB 持久化是将 Redis 的数据集以快照的形式保存到磁盘上的文件。它可以在指定的时间间隔内自动执行,或者通过手动命令触发。执行 RDB 持久化时,Redis 会将当前数据集的快照写入到一个 RDB 文件中。RDB 持久化适合用于备份和恢复数据集。
RDB 持久化可以通过以下步骤进行配置: a. 打开 Redis 的配置文件(redis.conf)。 b. 找到并修改以下配置项:
save 900 1 # 在900秒内,如果至少有1个键发生变化,则执行RDB持久化
save 300 10 # 在300秒内,如果至少有10个键发生变化,则执行RDB持久化
save 60 10000 # 在60秒内,如果至少有10000个键发生变化,则执行RDB持久化
这些配置项指定了触发 RDB 持久化的条件。可以根据需要进行调整。 c. 保存并关闭配置文件。 d. 重新启动 Redis 服务器,新的配置将生效。
另外,你也可以使用 SAVE 命令手动执行 RDB 持久化,或者使用 BGSAVE 命令在后台执行 RDB 持久化。
AOF 持久化
AOF 持久化是将 Redis 的写操作以日志的方式追加到一个文件中。通过记录每个写操作,当 Redis 重新启动时,可以重新执行这些写操作以恢复数据集的状态。AOF 持久化适合用于提供更好的持久性和数据安全性。
AOF 持久化可以通过以下步骤进行配置: a. 打开 Redis 的配置文件(redis.conf)。 b. 找到并修改以下配置项:
appendonly yes # 开启AOF持久化
appendfsync always # 每次写操作都立即将数据同步到磁盘(安全,但性能较差)
可以根据需要选择不同的 appendfsync 选项,如 always、everysec 或 no,以控制同步策略和性能。 c. 保存并关闭配置文件。 d. 重新启动 Redis 服务器,新的配置将生效。
此外,你还可以使用 BGREWRITEAOF 命令手动触发 AOF 重写,以压缩和优化 AOF 文件的大小。
根据具体的需求和应用场景,选择适合的持久化方式或同时使用 RDB 和 AOF 持久化来提供更好的数据持久性和恢复能力。