redis-pub_sub 发表于 2019-05-12 | 阅读次数: 字数统计: 188 | 阅读时长 ≈ 1 1234567891011121314151617181920212223242526272829303132333435363738394041424344 # -*- coding: utf-8 -*-"""发布和订阅 publish and subscribe订阅者负责订阅频道, 发送者负责向频道发送二进制字符串消息"""import threadingimport timeimport redisconn = redis.Redis()def publisher(n): time.sleep(1) for i in xrange(n): conn.publish("channel", i) time.sleep(1)def run_pubsub(): """ 启动发送者线程,并让它发送三条消息 """ threading.Thread(target=publisher, args=(3,)).start() pubsub = conn.pubsub() pubsub.subscribe(["channel"]) count = 0 for item in pubsub.listen(): print item count += 1 # 在接收到一条订阅反馈消息和三条 发布者发送的消息之后,执行退订操作 停止监听消息 if count == 4: pubsub.unsubscribe() # 收到退订反馈消息之后不再接收消息 if count == 5: breakif __name__ == "__main__": run_pubsub()