使用压缩列表作为底层实现,每个压缩列表节点(entity)保存了一个列表元素。
使用双端链表作为底层实现,每个双端链表节点(Node)都保存了一个字符串对象,而每个字符串对象都保存了一个列表元素。
使用ziplist编码的条件,需要对象可以同时满足以下两个条件,不能满足的需要用linkedlist编码:
以上两个条件的上限值是可以修改的,涉及到配置文件的选项:
list-max-ziplist-value
list-max-ziplist-entries
暂时不过多展开。
RPUSH Key value1 value2 value3......
LPUSH Key value1 value2 value3.....
《Redis设计与实现》