Redis数据类型 — List

List 列表是简单的字符串列表,按照插入顺序排序,可以从头部或尾部向 List 列表添加元素。

List内部实现

List 类型的底层数据结构是由双向链表或压缩列表实现的:

  • 如果列表的元素个数小于 512 个(默认值,可由 list-max-ziplist-entries 配置),并且列表每个元素的值都小于 64 字节(默认值,可由 list-max-ziplist-value 配置),Redis 会使用压缩列表作为 List 类型的底层数据结构;
  • 如果列表的元素不满足上面的条件,Redis 会使用双向链表作为 List 类型的底层数据结构;
  • 在 Redis 3.2 版本之后,List 数据类型底层数据结构就只由 quicklist 实现了,替代了双向链表和压缩列表

Redis数据类型 — List_第1张图片

三种数据结构对比

  • LinkedList:普通链表,可以从双端访问,内存占用较高,内存碎片较多

  • ZipList:压缩列表,可以从双端访问,内存占用低存储上限低

  • QuickList:LinkedList + ZipList,可以从双端访问,内存占用较低,包含多个ZipList,存储上限高

 未来,可能更新成Listpast

你可能感兴趣的:(Redis,redis,数据库,缓存)