1. Redis 提供了两种持久化方式: RDB 和 AOF
    2. RDB 使用一次性生成内存快照的方式, 产生的文件紧凑压缩比更高, 因此读取 RDB 恢复速度更快。由于每次生成 RDB 开销较大, 无法做到实时持久化, 一般用于数据冷备和复制传输
    3. save 命令会阻塞主线程不建议使用, bgsave 命令通过 fork 操作创建子进程生成 RDB 避免阻塞
    4. AOF 通过追加写命令到文件实现持久化, 通过 appendfsync 参数可以控制实时/秒级持久化。因为需要不断追加写命令, 所以 AOF 文件体积逐渐变大, 需要定期执行重写操作来降低文件体积
    5. AOF 重写可以通过 auto-aof-rewrite-min-size 和 auto-aof-rewrite-percentage 参数控制自动触发, 也可以使用 bgrewriteaof 命令手动触发
    6. 子进程执行期间使用 copy-on-write 机制与父进程共享内存, 避免内存消耗翻倍。AOF 重写期间还需要维护重写缓冲区, 保存新的写入命令避免数据丢失
    7. 持久化阻塞主线程场景有: fork 阻塞和 AOF追加阻塞。fork 阻塞时间跟内存量和系统有关, AOF 追加阻塞说明硬盘资源紧张
    8. 单机下部署多个实例时, 为了防止出现多个子进程执行重写操作, 建议做隔离控制, 避免 CPU 和 IO 资源竞争