Redis 持久化缓存

作者:IT技术圈子 阅读:2 日期:2025年09月10日

Redis 持久化是确保数据在服务重启或崩溃后不丢失的关键机制,它通过将内存中的数据保存到磁盘来实现。Redis 提供了两种主要的持久化方式:RDB(Redis Database)和AOF(Append Only File),每种方式各有优缺点,适用于不同的场景。

---

优点:

  • 高性能:RDB 是紧凑的二进制文件,恢复速度快。
  • 适合备份:可以方便地将 RDB 文件传输到其他服务器进行备份。
  • 最大化 Redis 性能:持久化过程由子进程完成,主线程不受影响。

缺点:

  • 数据丢失风险:两次快照之间修改的数据可能丢失(如配置 `save 900 1`,则最多可能丢失 900 秒内的数据)。
  • 大键问题:生成快照时需要复制内存数据,若内存占用大,可能导致短暂延迟。

配置示例: ```ini # redis.conf save 900 1 # 900秒内至少1次修改 save 300 10 # 300秒内至少10次修改 save 60 10000 # 60秒内至少10000次修改 dbfilename dump.rdb dir /var/lib/redis ```

---

优点:

  • 数据安全性更高:最多丢失 1 秒的数据(配置 `everysec` 时)。
  • 可读性:AOF 文件是文本格式,便于人工检查和修复。
  • 支持重写:通过 `BGREWRITEAOF` 压缩冗余命令,减少文件大小。

缺点:

  • 文件体积大:相比 RDB,AOF 文件可能更大。
  • 恢复速度慢:需要重新执行所有命令,恢复时间较长。
  • 性能开销:频繁的磁盘 I/O 可能影响吞吐量。

配置示例: ```ini # redis.conf appendonly yes appendfilename "appendonly.aof" appendfsync everysec # 同步策略 no-appendfsync-on-rewrite yes # 重写期间是否暂停同步 ```

---

配置方法: ```ini # redis.conf aof-use-rdb-preamble yes ```

---

---

---

  • Q:AOF 文件过大怎么办? A
  • Q:如何修复损坏的 AOF 文件? A
  • ---

    通过合理配置持久化策略,可以确保 Redis 在提供高性能的同时,兼顾数据的可靠性和可恢复性。根据业务需求选择 RDB、AOF 或混合模式,并定期维护和测试持久化文件。

      END