码迷,mamicode.com
首页 > 其他好文 > 详细

redis_py发布/订阅方法

时间:2015-09-22 19:07:38      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:python redis 发布 订阅


1      Publish / Subscribe 发布/订阅

  Redis 的 SUBSCRIBE 命令可以让客户端订阅任意数量的频道,每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端。
作为例子, 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:


  技术分享                            当有新消息通过 PUBLISH 命令发送给频道channel1 时, 这个消息就会被发送给订阅它的三个客户端:


技术分享 上面描述了订阅与发布的关系。

 

2      example 实例演示

发布端:

# -*- coding: UTF-8 -*-
import redis
 
redis_client = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)
 
# 建立PubSub对象订阅通道和侦听新消息
p = redis_client.pubsub()
 
# 订阅两个频道,分别是my-first-channel,和my-second-channel
p.subscribe(‘my-first-channel‘, ‘my-second-channel‘)
 
# 使用publish推送消息,注意是StrictRedis类的方法
redis_client.publish(‘my-first-channel‘, ‘nihvdfdao‘)


 

订阅端A

# -*- coding: UTF-8 -*-
import redis
 
redis_server = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)
 
# 建立PubSub对象订阅通道和侦听新消息
p = redis_server.pubsub()
 
# 订阅两个频道,分别是my-first-channel,和my-second-channel
p.subscribe(‘my-first-channel‘, ‘my-second-channel‘)
 
# 使用p.listen()方法监听频道
for item in p.listen():  
    # 如果订阅的频道存储的项目是‘message‘
    if item[‘type‘] == ‘message‘:  
        # 则打印这个项目
        print item[‘data‘]


 

订阅端B

# -*- coding: UTF-8 -*-
import redis
 
redis_server = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)
 
# 建立PubSub对象订阅通道和侦听新消息
p = redis_server.pubsub()
 
# 订阅两个频道,分别是my-first-channel,和my-second-channel
p.subscribe(‘my-first-channel‘, ‘my-second-channel‘)
 
whileTrue:
    data =msg_queue.parse_response()
    
    print pickle.loads(data[2])


   

 

 

 

本文部分内容和图片引用以下网址:

http://zc985552943.iteye.com/blog/2037535


本文出自 “运维路上” 博客,请务必保留此出处http://vekergu.blog.51cto.com/9966832/1697104

redis_py发布/订阅方法

标签:python redis 发布 订阅

原文地址:http://vekergu.blog.51cto.com/9966832/1697104

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!