-
Notifications
You must be signed in to change notification settings - Fork 71
SSD数据存储格式
lijingcheng edited this page Dec 21, 2017
·
1 revision
每个元数据key代表一个redis key.
编码结构:
M | key
- M表示这是一个元数据key
- key对应redis中的原始key名称
编码结构:
type | version | deleted flag | len
- type(1 byte):当前版本key的类型(hash/set/zset),分别对应H、S、Z
- version(2 bytes):当前key哪个版本是有效的,其他的版本则是需要删除的
- deleted flag(1 byte):当前版本的key是否已被删除(字符'D'表示该key被删除,字符'E'表示该key未被删除)
- len(8 bytes):当前版本key的子元素个数
编码结构:
type | version | deleted flag | len | left | right
- type为L
- left(8 bytes)为list最左节点元素的序号
- right(8 bytes)为最右节点元素的序号
编码结构:
type | version | deleted flag | value
- type为k
每个子元素key表示一个redis复合类型key(hash/set/zset/list)的子元素。
type | keylen | key | version | field
- type为S,S表示这是一个子元素key
- version指明这个元素是哪个版本的key,如果与元信息key的meta value中的版本(version)不一致,则表示这是一个已删除但还未清理的key。 每个待清理的key版本会对应一个上面所述的D开头的标记key。
S | keylen | key | version | seq
- 其中,seq(8 bytes)为该元素插入序号
Z | keylen | key | version | score | field
编码结构:
value