Redis提供了两种持久化策略:RDB(Redis Database)和AOF(Append Only File)。
1. RDB持久化:RDB持久化是将Redis在内存中的数据保存到硬盘中的一种机制。它会定期将数据集快照存储到磁盘上,并在Redis重启时使用该快照来还原数据集。RDB持久化可以通过配置Redis服务器的save选项来启用,该选项指定Redis在哪个时间间隔内执行数据集快照操作,以及在达到多少次写操作后执行数据集快照。RDB持久化的优点是快速、简单,适合用于备份和灾难恢复。缺点是可能会丢失最近的一些修改数据。
2. AOF持久化:AOF持久化是将Redis的写操作追加到一个文件中,以便在Redis重启时重新执行这些写操作来还原数据集。AOF持久化可以通过配置Redis服务器的appendonly选项来启用。AOF持久化有两种模式:每个写操作都立即记录到磁盘上的"always"模式,和根据配置的fsync选项来定期记录到磁盘上的"everysec"模式。AOF持久化的优点是可以提供更好的数据保护,缺点是可能会导致AOF文件过大、写入性能降低。
需要注意的是,RDB和AOF持久化并不是互斥的,您可以同时启用它们来提供双重保护。此外,Redis还提供了一种混合持久化策略,称为"RDB+AOF",该策略充分利用了RDB和AOF持久化的优势,以提供更好的数据保护和恢复性能。在RDB+AOF模式下,Redis会将快照文件和AOF文件结合在一起,以提高恢复速度和数据保护性。