Redis实现消息队列
一、前言
首先 明确消息队列的作用:异步、解耦、削峰。
在业务的实现过程中,就算没有大量的流量,解耦和异步化几乎也是处处可用,此时MQ就显得尤为重要。
但与此同时MQ也是一个重量级的组件,在中小型业务的开发过程中,过重的组件服务也会成倍增加工作量。
所幸的是,redis提供的list数据结构非常适合做消息队列。(文章最后有redis实现消息队列的代码实现哦!)
现 总结如下:
二、Redis实现消息队列的两种方式
①、Redis队列模式 (此章节重点讲述)
②、Redis发布订阅模式
三、Redis队列模式实现原理
redis队列模式(两种命令方式,均满足 先进先出 的队列模式)
①、lpush rpop :非阻塞式
②、lpush brpop :阻塞式 ( 推荐此种方式 )
注意 :在这里只讲解redis实现消息队列的相关命令使用。
如需要查看redis命令详解,请前往如下链接: 5分钟学会Redis命令详解
--------------------------------------↓↓↓↓↓↓↓↓↓↓ -------------------------------------
①、lpush rpop :非阻塞式
从上图命令中可以看出,rpop 是非阻塞式。
②、lpush brpop :阻塞式 (推荐此种方式)
从上图命令中可以看出,brpop 是阻塞式。
从上图命令中可以看出,brpop可以接收多个键,意义是同时检测多个键,如果所有键都没有元素
则阻塞,如果其中一个有元素则从该键中弹出该元素,只弹出一个消息。
(会按照key的顺序进行读取,可以实现具有优先级的队列)。
四、Redis实现消息队列-java代码实现
再 上述文章中,重点讲解 redis实现消息队列的 原理实现 ;
但作为一个合格的程序猿来say,除了代码一切都是浮云 ...
于是,小主在工作闲暇时间,废寝忘食、忘乎所以,还是写了个小demo,供猿友们参考;
现 请前往如下链接:5分钟学会Redis实现消息队列-java代码实现
Now ~ ~ ~写到这里,就写完了,如果有幸帮助到你,请记得关注我,共同一起见证我们的成长。