Redis订阅发布模式

采用订阅发布模式可以将消息分发给所有订阅者,实现消息通知的功能

redis提供订阅发布模式可供使用,基于redis的链表结构

代码如下:

发布者

 1 from redis import StrictRedis
 2 import time
 3 
 4 
 5 redis = StrictRedis(host="192.168.1.1", db=10, password="xxx")
 6 
 7 while True:
 8     msg = str(time.time())+"=msg="
 9     redis.publish("information.important", msg)
10     print("publish one ===")
11     time.sleep(1)

 

订阅者

 1 from redis import StrictRedis
 2 
 3 
 4 redis = StrictRedis(host="192.168.1.1", db=10, password="xxx")
 5 
 6 sub = redis.pubsub()
 7 sub.subscribe("information.important")
 8 
 9 
10 for msg in sub.listen():
11     print(msg)

 

订阅到的信息为:

1 {'type': 'subscribe', 'pattern': None, 'channel': b'information.important', 'data': 1}
2 {'type': 'message', 'pattern': None, 'channel': b'information.important', 'data': b'1623753168.7148438=msg='}
3 {'type': 'message', 'pattern': None, 'channel': b'information.important', 'data': b'1623753169.7158203=msg='}
4 {'type': 'message', 'pattern': None, 'channel': b'information.important', 'data': b'1623753170.7167969=msg='}
5 {'type': 'message', 'pattern': None, 'channel': b'information.important', 'data': b'1623753171.7177732=msg='}
6 {'type': 'message', 'pattern': None, 'channel': b'information.important', 'data': b'1623753172.71875=msg='}
7 {'type': 'message', 'pattern': None, 'channel': b'information.important', 'data': b'1623753173.7197266=msg='}
8 {'type': 'message', 'pattern': None, 'channel': b'information.important', 'data': b'1623753174.720703=msg='}
9 {'type': 'message', 'pattern': None, 'channel': b'information.important', 'data': b'1623753175.7216797=msg='}

 

可以通过订阅相应的通道,来获取相应的消息

 

posted @ 2021-06-15 18:42  华腾海神  阅读(127)  评论(0编辑  收藏  举报