八、Redis列表简单实现队列

作者: 温新

分类: 【Redis】

阅读: 2095

时间: 2020-09-01 13:23:50

在Redis中,List类型是按照插入顺序排列的字符串链表。与数据结构中的普通链表一样,可以在头部和尾部新增元素。新增时,如是key不存在,则创建。若列表中的元素被移除完毕,那么key也将被移除。因此使用List来实现队列是最合适的。

下面简单用Redis中的List来实现一个队列,并支持阻塞式读取。

先进先出。从左向右插入,从右先左弹出

# 入栈
127.0.0.1:6379> lpush book_list a b c d
(integer) 4
127.0.0.1:6379> lrange book_list 0 -1
1) "d"
2) "c"
3) "b"
4) "a"

# 出栈
127.0.0.1:6379> rpop book_list
"a"
127.0.0.1:6379> rpop book_list
"b"

图示

1)执行入栈操作之后的数据结构如下图(满足先进先出队列模式)

2)第一次执行rpop之后的数据结构

从右向左插入,从左右弹出

127.0.0.1:6379> rpush book_list2 a b c d
(integer) 4
127.0.0.1:6379> lrange book_list2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"

127.0.0.1:6379> lpop book_list2
"a"
127.0.0.1:6379> lrange book_list2 0 -1
1) "b"
2) "c"
3) "d"

1)执行rpush之后的数据结构

2)执行lpop之后的数据格式

请登录后再评论