[redis] list数据结构
一、描述
redis的一个数据结构为list(双向列表)
二、数据结构定义
struct quicklistNode *prev;
struct quicklistNode *next;
从prev和next都是当前该数据结构quicklistNode的定义,再查看其他数据如sz,count等都不能表示存放的数据,因此实际quicklistNode的数据存储功能是交由ziplist(压缩双向列表),相关链接
unsigned char *zl;
比较好的描述quicklistNode是一个内部由ziplist构成的双向链表
三、控制ziplist的参数
因为内部的数据实际是通过ziplist来进行存放的,一个节点到底存放多少entry的数据呢,这个会导致内存和执行效率,而如下参数便是控制这个的:
list-max-ziplist-size -2
1.负数,表示每个quicklist节点内部的ziplist不能超过多少字节,-2代表8kb
2.正数,表示每个quicklist节点内部的ziplist的entry数量不能超过这个正数