Redis-Ziplist

<zlbytes><zltail><zllen><entry><entry><zlend>

zlbytes: 无符号整数,表示ziplist总字节数

zltail: 最后一个元素的偏移量,使得pop操作不用遍历整个结构

zllen: entry的数量,如果大于2^16-2,则需要遍历所有entry来计数

zlend:单字节,255,表示是ziplist结束

entry: 

每一个entry都有一个包含两部分信息的header。

第一部分,前entry的长度,

  1. 如果长度小于254,则只占用1个字节,其值为entry长度。

  2. 如果长度大于254,则它会占用5字节,第1个字节设置为254,后四个字节表示entry长度

第二部分,编码,取决于其内容是什么

  string: 前两个字节为string长度的编码类型

  int: 前两个字节设置为1,其后两个字节表示整数的类型。 所有整数都是little-endian

 

posted on 2012-07-22 00:22  leaving  阅读(456)  评论(0编辑  收藏  举报