RDB - 969251639/study GitHub Wiki
RDB是redis持久化的一种方式,可以手动执行也可以自动触发,其本质上是生成一个经压缩的二进制文件,通过该文件可以还原RDB保存的数据。
RDB主要涉及两个命令,SAVE和BGSAVE
SAVE:阻塞,直到RDB文件创建完为止
BGSAVE:fork出一个子进程,子进程负责创建RDB,父进程继续处理请求
注:AOF的更新频率比RDB快,所有启动还原数据时有AOF的先还原AOF文件,其次才是RDB文件
另外,BGSAVE在执行期间,下面的这三个命令都会被特殊处理:
- SAVE:服务器拒绝,避免产生竞争条件在父进程和子进程之间
- BGSAVE:服务器拒绝,避免产生竞争条件在父进程和子进程之间
- BGREWRITEAOF:延迟到BGSAVE执行完之后执行,如果BGREWRITEAOF先执行,那么BGSAVE会被服务器拒绝执行
服务器在载入RDB期间,会一直处于阻塞状态,直至加载完成