数据库 ·

Redis学习笔记02-列表对象

底层实现

ziplist编码

使用压缩列表作为底层实现,每个压缩列表节点(entity)保存了一个列表元素。

linkedlist编码

使用双端链表作为底层实现,每个双端链表节点(Node)都保存了一个字符串对象,而每个字符串对象都保存了一个列表元素。

编码转换

使用ziplist编码的条件,需要对象可以同时满足以下两个条件,不能满足的需要用linkedlist编码:

  1. 列表对象保存的所有字符串元素的长度都小于64字节
  2. 列表对象保存的元素数量小于512个

以上两个条件的上限值是可以修改的,涉及到配置文件的选项:

list-max-ziplist-value
list-max-ziplist-entries

基础命令

暂时不过多展开。

  • 创建-链尾:RPUSH Key value1 value2 value3......
  • 创建-链首:LPUSH Key value1 value2 value3.....

参考资料

Redis设计与实现》

参与评论