01、存储类型

存储有序的字符串(从左到右或从右到左),元素可以重复。可以充当队列和栈的角色。

03、list数据类型

02、操作命令

lpush key1 a

lpush key1 c b

rpush key1 e

lpop key1

lpop key1

rpop key1

lindex 0

lrange 0 -1

03、list数据类型

【3】、存储(实现)原理

早期的版本中,数据量较小时用ziplist存储,达到临界值时转换为linkedlist进行存储,分别对应OBJ_ENCODING_ZIPLIST和OBJ_ENCODING_LINKEDLIST。

3.2版本之后统一用quicklist来存储

【4】、quicklist

存储了一个双向链表,每个节点都是一个ziplist。

head和tail指向双向列表的表头和表尾。

03、list数据类型

03、list数据类型

03、list数据类型

03、list数据类型

【5】、应用场景

用户消息时间线timeline

消息队列

List提供了两个阻塞的弹出操作:BLPOP/BRPOP,可以设置超时时间。

BLPOP:BLPOP key 1  timeout移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

BRPOP:BRPOP key 1 timeout移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

队列:rpush  blpop

栈:rpush  brpop

案例:

https://www.jb51.net/article/124301.htm

相关文章:

  • 2021-05-21
  • 2022-12-23
  • 2021-11-07
  • 2021-11-26
  • 2021-08-18
  • 2022-12-23
  • 2021-06-29
  • 2022-02-04
猜你喜欢
  • 2021-12-10
  • 2022-12-23
  • 2022-01-13
  • 2021-12-25
  • 2022-12-23
  • 2021-10-19
相关资源
相似解决方案