Redis持久化存储RDB(写时复制)/AOF

快照 RDB
  • save:会阻塞当前Redis服务器,直到持久化完成,线上应该禁止使用。明确时间点,关机维护。

  • bgsave:fork一个子进程,由子进程负责持久化过程,父进程发生写操作修改内存数据时(Copy On Write),才会真正去分配内存空间,并复制内存数据,而且也只是复制被修改的内存页中的数据,并不是全部内存数据;

    • 管道
      1.衔接,前一个命令的输出作为后一个命令的输入;
      2.管道会创建子进程;
      Redis持久化存储RDB(写时复制)/AOF_第1张图片
      $$优先级高于 | ,在创建进程之前,被进程号替换;
      $BASHPID优先级低于 |,所以在创建进程后被替换,所以每次进程号都不一致;
    • 父进程和子进程
      1.常规操作,父子进程之间的数据隔离;
      2.export设置环境变量,子进程可以看到父进程的数据,并且父子进程对数据修改后,对应的父子进程数据不会改变。
  • RDB过程容易丢失一段时间数据,并且只有一个dump.rdb文件。

追加文件 AOF

Redis持久化存储RDB(写时复制)/AOF_第2张图片

  • appendfilename appendonly.aof # aof文件名
  • appendonly yes #打开AOF 默认关闭
  • appendfsync always # 每个操作都写到磁盘中
  • appendfsync everysec # 每秒写一次磁盘,默认,会丢失一秒数据
  • appendfsync no # 由操作系统决定写入磁盘的时机,会丢失一个buffer的数据
  • auto-aof-rewrite-percentage 100 # 百分比
  • auto-aof-rewrite-min-size 64mb # 大小
  • no-appendfsync-on-rewirete no # 重写aof文件时是否执行同步操作
  • aof-use-rdb-preamble yes #RDB AOF 混合开启

你可能感兴趣的:(Redis,redis)