redis学习笔记05-发布订阅模式

由于redis消息队列并不支持多播机制,即生产者产出一次,由中间件复制发送给多个消费者的机制,为了弥补这个不足,单独引入了发布订阅模式的模块。使用方式如下:

#生产者

import redis

client = redis.StrictRedis()

client.publish('ll','pythonbooks come')
client.publish('ll','javabooks come')
client.publish('ll','gobooks come')

#消费者

import redis

client = redis.StrictRedis()
p = client.pubsub()
p.subscribe('ll')

for msg in p.listen():
	print(msg)

使用时注意:

  • 必须要先启动消费者,才能启动生产者。
  • 消费者执行过程是阻塞的,会一直等待生产者的信息
  • 可以一次订阅多个key,可以用*符号作为通配符

pubsub模式的缺点:

  • 断开连接的消费者重新连接时收不到断开时间内的消息。
  • 如果redis重新启动,pubsub消息无法持久化,相当于丢弃了所有消息。
    而解决这个缺点就需要使用一种新的数据结构stream。

具体请转:
redis-stream详解:http://www.redis.cn/topics/streams-intro.html

posted @ 2019-09-19 16:01  __冫冫  阅读(165)  评论(0编辑  收藏  举报