列表对象编码可以是ziplist
或者linkedlist
。
type | encoding | 对象 |
---|---|---|
REDIS_LIST | REDIS_ENCODING_ZIPLIST | 使用压缩链表实现的列表对象 |
REDIS_LIST | REDIS_ENCODING_LINKEDLIST | 使用双端链表实现的列表对象 |
linkedlist编码的列表对象使用双端链表作为底层实现,每个双端链表节点都保存了一个字符串对象,而
编码转换
当列表独享可以同时满足以下2个条件时,列表对象使用ziplist
编码:
- 列表对象保存的所有字符串元素的长度都小于64字节
- 列表对象保存的元素数量小于512个
不能满足这2个条件的需要使用linkedlist
编码。
列表命令实现
LPUSH
- ziplist
- linkedlist
网友评论