压缩列表是 哈希以及列表 的底层实现,节约内存
当元素数目较少,且key,value皆为整数或短字符串时使用压缩列表实现哈希以及列表对象
首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是 ziplist,也即是 压缩列表。它将所有的元素紧挨着一起存储,分配的是一块连续的内存。当数据量比较多的 时候才会改成 quicklist。因为普通的链表需要的附加指针空间太大,会比较浪费空间,而且 会加重内存的碎片化。
1 连续内存 减少碎片化 且访问性能更好
2 减少普通链表附加指针空间所耗费空间大小,节约内存
使用普通列表相比较与压缩列表,除了存储value外,还需要两个额外的指针,各个节点通过指针串联起来。而压缩列表则各个节点存储内存地址顺序相接,不需要指针