5.5、本章重点回顾

本章重点回顾

  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资源竞争。

你可能感兴趣的:(5.5、本章重点回顾)