RDB执行流程(原理)

Redis 笔记三 RDB执行流程

1. Redis父进程首先判断:当前是否在执行save,或bgsave/bgrewriteaofaof文件重写命令)的子进程,如果在执行则bgsave命令直接返回。
2. 父进程执行fork(调用OS函数复制主进程)操作创建子进程,这个复制过程中父进程是阻塞的,Redis不能执行来自客户端的任何命令。
3.
父进程fork后,bgsave命令返回”Background saving started”信息并不再阻塞父进程,并可以响应其他命令。
4.
子进程创建RDB文件,根据父进程内存快照生成临时快照文件,完成后对原有文件进行原子替换。(RDB始终完整)
5. 子进程发送信号给父进程表示完成,父进程更新统计信息。
6. 父进程fork子进程后,继续工作。
 
RDB文件结构
Redis 笔记三 RDB执行流程
1、头部5字节固定为“REDIS”字符串
24字节“RDB”版本号(不是Redis版本号),当前为9,填充后为0009
3、辅助字段,以key-value的形式
Redis 笔记三 RDB执行流程
4、存储数据库号码
5、字典大小
6、过期key
7、主要数据,以key-value的形式存储
8、结束标志
9、校验和,就是看文件是否损坏,或者是否被修改。

相关文章:

  • 2021-07-18
  • 2022-01-20
  • 2021-10-01
  • 2021-12-22
  • 2022-12-23
  • 2021-07-14
  • 2021-08-22
  • 2021-10-22
猜你喜欢
  • 2021-09-03
  • 2022-01-14
  • 2021-08-26
  • 2022-02-15
  • 2021-12-30
  • 2021-10-20
  • 2021-10-23
相关资源
相似解决方案