最近工作中利用Redis的list实现了消息队列。实现逻辑很简单,下面简单介绍list的操作。
list 介绍
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
list 实现队列
通过前面list的介绍,我们可以知道list的存储量用来做消息队列绝对是够的,它是按照插入顺序排序的,且可以从列表的两头进行操作。
再来看队列的概念,队列是FIFO先进先出,那么我们可以用list的lpush(左近)和rpop(右出)来保证list中的元素先进先出。效果如下:
不熟悉list操作命令的可以看菜鸟教程-Redis list用法
# 往key为mylist的列表从左边(前面)依次塞入三个元素
127.0.0.1:6379> lpush mylist zhangsan lisi wangwu
(integer) 3
# 查看key为mylist的列表的所有元素
127.0.0.1:6379> lrange mylist 0 -1
1) "wangwu"
2) "lisi"
3) "zhangsan"
# 从右边(后面)弹出一个元素
127.0.0.1:6379> rpop mylist
"zhangsan"
#再次查看mylist的所有元素
127.0.0.1:6379> lrange mylist 0 -1
1) "wangwu"
2) "lisi"