码迷,mamicode.com
首页 > 其他好文 > 详细

REdis AOF文件结构分析

时间:2019-03-14 13:26:40      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:com   http   相同   加载   因此   文件结构   new   时间   mem   

REdis-5.0之前的AOF文件没有文件头,不管是REdis-5.0之前还是REdis-5.0,它们的AOF文件体内容都如下图所示:

 技术图片

从REdis-5.0开始,AOF有文件头,目的是支持同时加载RDBAOF文件。AOF文件头和RDB文件头基本相同,但RDB文件头多了三个字段。

先看AOFRDB通用部分的文件头内容:

1) 头5字节固定为REDIS

2) 第6~9共四字节为RDB版本号

3) 接下来为redis-ver和它的值,即redis版本

4) 接着redis-bits和它的值,即redis的位数,值为3264

5) 接着为ctime和它的值,值为当前时间戳

6) 接着为used-mem和它的值

7) 最后是aof-preamble和它的值,值为011表示RDB有效。

 

RDB的文件头和AOF基本相同,但在aof-preamble之前多了如下三项:

1) repl-stream-db

2) repl-id

3) repl-offset

 

AOF文件中并未保存已复制的偏移(repl-offset),这个信息只保存在RDB文件头中。因此当进程重启时,并不能从AOF文件恢复复制偏移,除非以RDB方式运行(配置项appendonlyNO时)。

但是从REdis-5.0开始,加载AOF文件时,先读AOF文件头,如果发现有文件头(Reading RDB preamble from AOF file...),则会先从RDB加载数据,并恢复前面提到的复制偏移(repl-offset)等三项数据,剩余部分再从AOF文件读取(Reading the remaining AOF tail...)。

 

REdis AOF文件结构分析

标签:com   http   相同   加载   因此   文件结构   new   时间   mem   

原文地址:https://www.cnblogs.com/aquester/p/10529549.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!