Redis数据类型之List

一、Redis五种数据类型

Redis数据类型之List

一、List结构

1.List常用操作

命令 解释
LPUSH key value [value…] 将一个或多个值value插入到key列表的表头(最左边)
RPUSH key value [value…] 将一个或多个值value插入到key列表的表尾(最右边)
LPOP key 移除并返回key列表的头元素
RPOP key 移除并返回key列表的尾元素
LRANGE key start stop 返回列表key中指定区间内的元素,区间以偏移量start和stop指定
BLPOP key [key…] timeout 从key列表表头弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果设置timeout=0,一直阻塞等待
BRPOP key [key…] timeout 从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果设置timeout=0,一直阻塞等待

2.常用数据结构
Stack(栈) = LPUSH + LPOP -->FIFO
Queue(队列) = LPUSH + RPOP
Blocking MQ(阻塞队列) = LPUSH + BRPOP

二、List应用场景

1.微博和微信公众号消息流
例如:
A微博用户关注了B用户,C用户。
(1)B用户发微博,消息ID为001
LPUSH msg:{A用户id} 001
(2)C用户发微博,消息ID为002
LPUSH msg:{A用户id} 002
(3)A用户查看前两条最新的微博消息
LRANGE msg:{A用户id} 0 1