八、Redis列表简单实现队列
在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之后的数据格式
请登录后再评论