Redis数据类型之List
一、Redis五种数据类型
一、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