Python-redis生产者消费者模式和发布者订阅者模式

4 篇文章 0 订阅
2 篇文章 0 订阅

Python-redis生产者消费者模式和发布者订阅者模式

生产者消费者模式

生产者消费者模式是一个或多个消费者监听redis消息队列,一旦生产者有消息发出,那么消费者谁抢到算谁的,消息队列没有消息后,则继续监听等待。
示例代码:
关键方法:blpop

import redis

# 生产者消费者模式
class RedisTask(object):
    def __init__(self,info):
        self.rcon = redis.StrictRedis(host='localhost', db=1)
        self.queue = info


    def listen_task(self):
        while True:
            task = self.rcon.blpop(self.queue, 0)    # 填0为阻塞等待,填大于0的数字为超时等待,超过时间没有消息接收到,则task为None
            print(task)
if __name__ == '__main__':
    info = 'abc'
    redis_task = RedisTask(info)
    redis_task .listen_task()

发布者订阅者模式

发布者订阅者模式是一个或多个客户端订阅消息频道,只要发布者发布这个频道的消息,则所有订阅者都可以接收到此频道的消息,等待模式为阻塞等待。
示例代码:
关键方法:pubsub,publish,subscribe,psubscribe

发布者

import redis

# 发布者
redis_conn = redis.StrictRedis(host='localhost', db=5)
redis_conn.publish('test1', 'abcdef')

订阅者

#订阅者
redis_conn = redis.StrictRedis(host='localhost', db=5)
rc_sub = redis_conn.pubsub()
rc_sub.subscribe('test1')
# 订阅多个频道使用psubscribe方法,参数为列表
# rc_sub.psubscribe(['test1','test2','test3'])
for item in rc_sub.listen():
    if item['type'] == 'message':
        print(item['channel'])
        print(item['data'])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值