使用Redis做消息队列

使用Redis做消息队列

基于内存的单线程数据库,使Redis的线程安全性极高。而Redis的双向链表数据类型(List)天生就可作为消息队列存储消息.

在这里就不说消息队列的等等一些优点。但是补充一下Redis的List类型的几个命令,你可以指定将一个元素投送到列表的头部(左边)或者尾部(右边),当然也可以指定从列表的头部或尾部取出数据.

LPush:添加元素至列表的头部

使用Redis做消息队列

 

使用Redis做消息队列

 RPush:添加元素至列表的尾部

使用Redis做消息队列

 

使用Redis做消息队列

LPop:移除并获取列表的头部的第一个元素

使用Redis做消息队列

使用Redis做消息队列

 RPop:移除并获取列表的尾部的第一个元素

使用Redis做消息队列

 

使用Redis做消息队列

BLpop:移出并获取列表头部的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。命令格式:blpop key timeout,当timeout=0时,表示一直阻塞等待,直到有其他客户端执行rpush或者lpush命令,插入数据后,阻塞才解除.

BRpop:与BLpop相同,不同的是它是移除列表尾部的第一个元素.

如下,开启两个客户端,一个客户端先使用BLpop阻塞读取数据,另一个客户端写入数据.

使用Redis做消息队列

OK,到此我想你已经明白了,List的作用已经显而易见。生产者投入消息,消费者拿到消息。而且双向链表的数据类型,投入和拿取数据都特别灵活。是不是感觉很不错?接着往下看

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxgxg.html