quicklist节点布局:
- typedef struct quicklistNode {
- struct quicklistNode *prev; //前驱节点指针
- struct quicklistNode *next; //后继节点指针
- //不配置压缩数据参数recompress时指向一个ziplist布局
- //配置压缩数据参数recompress指向quicklistLZF布局
- unsigned char *zl;
- //压缩列表ziplist的总长度
- unsigned int sz; /* ziplist size in bytes */
- //ziplist中包的节点数,占16 bits长度
- unsigned int count : 16; /* count of items in ziplist */
- //暗示是否回收了LZF压缩算法压缩quicklist节点,1暗示压缩过,2暗示没压缩,占2 bits长度
- unsigned int encoding : 2; /* RAW==1 or LZF==2 */
- //暗示一个quicklistNode节点是否回收ziplist布局生涯数据,2暗示压缩了,1暗示没压缩,默认是2,占2bits长度
- unsigned int container : 2; /* NONE==1 or ZIPLIST==2 */
- //标志quicklist节点的ziplist之前是否被解压缩过,占1bit长度
- //假如recompress为1,则守候被再次压缩
- unsigned int recompress : 1; /* was this node previous compressed? */
- //测试时行使
- unsigned int attempted_compress : 1; /* node can't compress; too small */
- //特殊扩展位,占10bits长度
- unsigned int extra : 10; /* more bits to steal for future usage */
- } quicklistNode;
相干设置
在redis.conf中的ADVANCED CONFIG部门:
- list-max-ziplist-size -2
- list-compress-depth 0
list-max-ziplist-size参数
我们来具体表明一下list-max-ziplist-size这个参数的寄义。它可以取正值,也可以取负值。
当取正值的时辰,暗示凭证数据项个数来限制每个quicklist节点上的ziplist长度。好比,当这个参数设置成5的时辰,暗示每个quicklist节点的ziplist最多包括5个数据项。
当取负值的时辰,暗示凭证占用字节数来限制每个quicklist节点上的ziplist长度。这时,它只能取-1到-5这五个值,每个值寄义如下:
-5: 每个quicklist节点上的ziplist巨细不能高出64 Kb。(注:1kb => 1024 bytes)
-4: 每个quicklist节点上的ziplist巨细不能高出32 Kb。
-3: 每个quicklist节点上的ziplist巨细不能高出16 Kb。
-2: 每个quicklist节点上的ziplist巨细不能高出8 Kb。(-2是Redis给出的默认值)
list-compress-depth参数
这个参数暗示一个quicklist两头不被压缩的节点个数。注:这里的节点个数是指quicklist双向链表的节点个数,而不是指ziplist内里的数据项个数。现实上,一个quicklist节点上的ziplist,假如被压缩,就是整体被压缩的。
参数list-compress-depth的取值寄义如下:
0: 是个非凡值,暗示都不压缩。这是Redis的默认值。 1: 暗示quicklist两头各有1个节点不压缩,中间的节点压缩。 2: 暗示quicklist两头各有2个节点不压缩,中间的节点压缩。 3: 暗示quicklist两头各有3个节点不压缩,中间的节点压缩。 依此类推…
Redis对付quicklist内部节点的压缩算法,回收的LZF——一种无损压缩算法。
【编辑保举】
- 超具体的各类数据库默认驱动、URL、端口总结
- 一文相识各类数据库默认驱动、URL、端口
- 一次诡异的数据库“死锁”,题目毕竟在那边?
- Web端开源的大都据库支持打点器材,终于发明它了
- 漫衍式Redis的漫衍式锁Redlock
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|