RDB - 969251639/study GitHub Wiki

RDB是redis持久化的一种方式,可以手动执行也可以自动触发,其本质上是生成一个经压缩的二进制文件,通过该文件可以还原RDB保存的数据。

RDB主要涉及两个命令,SAVE和BGSAVE
SAVE:阻塞,直到RDB文件创建完为止
BGSAVE:fork出一个子进程,子进程负责创建RDB,父进程继续处理请求

注:AOF的更新频率比RDB快,所有启动还原数据时有AOF的先还原AOF文件,其次才是RDB文件

另外,BGSAVE在执行期间,下面的这三个命令都会被特殊处理:

  1. SAVE:服务器拒绝,避免产生竞争条件在父进程和子进程之间
  2. BGSAVE:服务器拒绝,避免产生竞争条件在父进程和子进程之间
  3. BGREWRITEAOF:延迟到BGSAVE执行完之后执行,如果BGREWRITEAOF先执行,那么BGSAVE会被服务器拒绝执行

服务器在载入RDB期间,会一直处于阻塞状态,直至加载完成