redis持久化了解

1.介绍

落盘持久化是指将数据从内存保存到硬盘(或其他非易失性存储介质)上,以便在程序退出、系统重启或断电后仍然能够恢复数据的一种机制。

在 Redis 中,持久化是为了避免因为 Redis 是内存数据库而导致的数据易失性问题。通过将内存中的数据定期或实时写入磁盘,可以实现数据的长期保存和恢复。

2.RDB

RDB(Redis DataBase)快照是一种基于快照的持久化机制,主要特点如下:

  • 原理: Redis 会在某些时间点(如定时或满足某种条件时)将内存中的所有数据生成一个二进制快照文件(通常是 dump.rdb),存储到磁盘。

  • 优点

    • 快照文件紧凑且占用磁盘空间小,适合数据备份和迁移。
    • 写入磁盘的过程对 Redis 性能的影响较小,因为快照生成是异步完成的。
  • 缺点

    • 在快照之间的数据无法保存,可能丢失最后一次快照后的数据(例如发生宕机时)。
  • 触发条件

    • 手动触发:通过命令 SAVE同步阻塞) 或 BGSAVE异步)生成快照。
    • 自动触发:根据配置文件中的条件(save <seconds> <changes>)触发快照。

3.AOF

AOF(Append Only File)是一种基于日志的持久化机制,主要特点如下:

  • 原理: Redis 会将每个写操作记录到一个日志文件(通常是 appendonly.aof)。这些日志文件按顺序记录操作,Redis 重启时可以通过重放这些日志恢复数据。

  • 优点

    • 数据丢失的风险低,可以通过配置实时写入日志。
    • 可选压缩功能,减少日志文件体积。
  • 缺点

    • AOF 文件通常比 RDB 文件大。
    • 在高写入压力下,实时记录操作可能对性能造成一定影响。
  • 同步策略: AOF 提供三种同步策略(通过 appendfsync 配置):

    • always:每次写操作都同步到磁盘,最安全但性能较低。
    • everysec:每秒同步一次,兼顾安全和性能(默认)。
    • no:完全由操作系统控制同步时机,性能最高但数据安全性较低。

上一篇:高性能计算


下一篇:Unity类银河战士恶魔城学习总结(P131 Improve Item Slot 改进物品描述)