redis 实现消息队列

最近工作中利用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"

你可能感兴趣的:(redis 实现消息队列)