目录
一、前言
压缩列表( ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么是小整数值,要么是长度比较短的字符串,那么 Redis就会使用压缩列表来做列表健的底层实现。
另外,当一个哈希键只包含少量键值对,比且每个键值对的键和值要么是小整数值,要么是长度比较短的字符串,那么 Redis就会使用压缩列表来做哈希键的底层实现。
二、压缩列表的构成
压缩列表是 Redis为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以包含任意多个节点,每个节点可以保存一个字节数组或者一个整数值。
例如
- zlbytes:记录整个压缩列表占用的内存字节数;在对压缩列表进行内存重分配,或者计算zlend的位置时使用。
- zltail: