Redis使用 :实现简单的消息队列
Redis提供了两种方式来作消息队列。一个是使用生产者消费模式模式,另外一个方法就是发布订阅者模式。前者会让一个或者多个客户端监听消息队列,一旦消息到达,消费者马上消费,谁先抢到算谁的,如果队列里没有消息,则消费者继续监听。后者也是一个或多个客户端订阅消息频道,只要发布者发布消息,所有订阅者都能收到消息,订阅者都是ping的。
生产消费模式
主要使用了redis提供的blpop获取队列数据,如果队列没有数据则阻塞等待,也就是监听。
|
|
发布订阅模式
使用redis的pubsub功能,订阅者订阅频道,发布者发布消息到频道了,频道就是一个消息队列。
|
|
提供生产者和消息发布者
这里使用Flask做一个简单的页面作为生产者和消息发布者
测试
将三短代码分别保存在三个脚本文件中启动.
打开浏览器,会看到如下页面:
点击其中的两个超链接,两个一直在监听的消费者和订阅者会立即得到消息
消费者
订阅者