美文网首页
Redis 列表对象

Redis 列表对象

作者: 杰哥长得帅 | 来源:发表于2019-02-05 19:35 被阅读4次

列表对象的编码可以是 ziplist 或 linkedlist

ziplist 编码的列表对象使用压缩列表作为底层实现,每个压缩列表节点(entry)保存了一个列表元素,节点值可以是一个字节数组或者整数,而不是 SDS(参考压缩列表的 content 属性)

ziplist 编码的列表对象

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

linkedlist 编码的列表对象

编码转换

当列表对象可以同时满足以下两个条件时,列表对象使用 ziplist 编码:

  • 列表对象保存的所有字符串对象长度都小于 64 字节
  • 列表对象保存的元素数量小于 512 个;不能满足这两个条件的列表对象需要使用 linkedlist 编码

以上两个条件的上限值可以被修改,由 list-max-ziplist-value 和 list-max-ziplist-entris 选项控制

当任一条件不能被满足时,对象的编码转换操作就会被执行

相关文章

网友评论

      本文标题:Redis 列表对象

      本文链接:https://www.haomeiwen.com/subject/biuvsqtx.html