哪一个数据结构能满足上述特征?
-
LinkedList
:普通链表,可以从双端访问,内存占用较高,内存碎片较多 -
ZipList
:压缩列表,可以从双端访问,内存占用低,存储上限低 -
QuickList
:LinkedList + ZipList,可以从双端访问,内存占用较低,包含多个ZipList,存储上限高
Redis
的List
结构类似一个双端链表,可以从首、尾操作列表中的元素:
在3.2版本之前,Redis采用ZipList和LinkedList来实现List,当元素数量小于512并且元素大小小于64字节时采用ZipList编码,超过则采用LinkedList编码。
在3.2版本之后,Redis统一采用QuickList来实现List: