`

python-redis订阅者和发布

 
阅读更多
#发布者:


>>> import redis
>>> rc= redis.Redis()
>>> rc.publish('test01','hello word')
1L
>>> rc.publish('test01','hello words')
1L

#订阅者

>>> import redis
>>> rc= redis.Redis()
>>> ps=rc.pubsub()
>>> ps.subscribe('test01')
>>> ps.listen().next().get('data')
1L
>>> ps.listen().next().get('data')
'hello word'
>>> ps.listen().next().get('data')
'hello words'

 

 

首先定义一个RedisHelper类,连接Redis,定义频道为monitor,义发布(publish)及订阅(subscribe)方法。

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import redis

class RedisHelper(object):
    def __init__(self):
        self.__conn = redis.Redis(host='192.168.0.110',port=6379)#连接Redis
        self.channel = 'monitor' #定义名称

    def publish(self,msg):#定义发布方法
        self.__conn.publish(self.channel,msg)
        return True

    def subscribe(self):#定义订阅方法
        pub = self.__conn.pubsub()
        pub.subscribe(self.channel)
        pub.parse_response()
        return pub

 发布者

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#发布
from RedisHelper import RedisHelper

obj = RedisHelper()
obj.publish('hello')#发布

 订阅者

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#订阅
from RedisHelper import RedisHelper

obj = RedisHelper()
redis_sub = obj.subscribe()#调用订阅方法

while True:
    msg= redis_sub.parse_response()
    print (msg)

 

分享到:
评论

相关推荐

    python-redis.rar

    6. 高级用法:Redis还提供了发布订阅(Pub/Sub)、事务(Transactions)、持久化、主从复制、集群等功能。Python的redis库都支持这些高级特性,可以通过其API实现相应的功能。 在实际开发中,掌握这些知识点可以...

    Python-redis

    `redis`库还提供了发布和订阅功能,可以实现消息的实时传递: ```python # 创建订阅者 sub = redis.Redis(host='localhost', port=6379, db=0) # 订阅频道 sub.subscribe('channel') # 接收消息 for message in ...

    python-redis-sample:python和redis中的示例应用程序

    结合Python和Redis,我们可以创建一个实时数据处理系统,例如,利用Redis的发布/订阅功能实现消息通知,或者作为缓存提高Web应用的性能。在DaoCloud CI环境中,我们可以配置测试用例来检查Redis相关的功能是否正常...

    redis订阅,redis发布

    在 Redis 中,发布/订阅(pub/sub)是一种消息通信模式,允许生产者(发布者)向多个消费者(订阅者)广播消息,而无需直接知道对方的存在。这种模式对于实现实时通知、聊天系统或者构建事件驱动的应用非常有用。 *...

    redis实战相关项目代码,用python编写-redis_python.zip

    项目中可能有相关的代码展示了如何创建发布者和订阅者,并进行消息传递。 6. **脚本(Scripting)**:Redis 使用 Lua 脚本实现原子操作。Python Redis 库提供了 `eval` 和 `evalsha` 方法执行 Lua 脚本。 7. **键...

    a-redis-beta-0.5.0.zip

    6. ** pub/sub(发布/订阅)**: Redis 的发布/订阅功能提供了一种轻量级的消息传递机制,使得多个客户端可以订阅特定的主题,当有新消息发布时,订阅者会收到通知。 7. **集群**: Redis 集群模式可以将数据分布在多...

    python 导入redis 包

    例如,你可以创建一个发布者和订阅者: ```python # 创建发布者 p = r.pubsub() p.publish('channel', 'message') # 创建订阅者 s = r.pubsub() s.subscribe('channel') for message in s.listen(): print(f...

    项目需求文档:Python+Scrapy-Redis的分布式网页爬虫框架(大规模数据采集架构)0基础!!易懂!!!.md

    - **任务调度模块**:利用Redis的列表结构实现任务队列,并采用发布-订阅模式来动态分发任务。 - **爬虫执行模块**:基于Scrapy框架进行爬虫逻辑的实现,同时借助Scrapy-Redis组件来支持分布式爬虫。 - **数据...

    Python-用FlaskRedis实现分布式任务分发

    4. **通信机制**:确保生产者和消费者之间的协调,如发布/订阅模型或工作队列模型。 **使用Flask和Redis实现任务分发** 1. **任务生产者**:在Flask应用中,你可以定义一个路由接收任务请求,然后使用Redis的`rpush...

    Flask-And-Redis:简单易用,对Flask应用程序的Redis数据库完全没有支持

    Flask应用可以通过`redis.pubsub()`创建订阅者,监听特定频道的消息,同时在其他地方发布消息到这些频道。 **异常处理与连接池** 在使用`Flask-And-Redis`时,要注意处理可能的网络异常,如连接超时、断开等。同时...

    Python-MrQueue一个Python的分布式worker任务队列使用Redis和gevent

    1. **任务发布**:生产者将任务以JSON或其他格式序列化后,通过Redis的发布/订阅机制将任务发布到特定的队列中。 2. **任务分配**:多个worker节点订阅了相同的队列,当有新任务发布时,它们会竞争获取任务。每个...

    redis in action, java+python

    - Pub/Sub模式:发布者发布消息,订阅者接收,实现异步通信。 - Redis阻塞列表(BLPOP/BRPOP):实现先进先出(FIFO)的消息队列。 6. Redis的数据持久化 - RDB(Snapshotting):定期保存整个数据库的状态,...

    python-GeoLiteCity-latest.zip

    例如,通过发布订阅模式,我们可以实现实时地将地理位置信息更新推送到多个订阅者,如分布式系统中的不同节点。 总结来说,结合Python、Redis和GeoLiteCity,我们可以构建出一套高效、可扩展的地理位置服务系统。...

    redis-py-master.zip

    - 使用`pubsub()`创建订阅者对象,`subscribe()`订阅频道,`publish()`向频道发送消息。 - 示例:`pubsub = r.pubsub()`,`pubsub.subscribe('channel')`,`r.publish('channel', 'message')` 9. **脚本(Lua ...

    Redis-x64-3.0.504 MSI ZIP

    6. **发布/订阅**:Redis提供发布/订阅(pub/sub)模式,允许消息的发布者和订阅者之间进行异步通信。 7. **Lua脚本**:Redis内置了Lua解释器,用户可以通过Lua脚本来实现更复杂的逻辑,且脚本执行是原子性的。 8....

    redis windows 绿色版

    - Redis的发布/订阅功能允许客户端订阅特定的频道,当有其他客户端向该频道发送消息时,所有订阅者都会收到消息。这对于构建实时通信系统非常有用。 9. 限制与优化: - Redis在Windows下的性能可能不如Linux,...

    Redis-x64-3.0.504

    此外,Redis支持事务操作,可以保证数据的一致性,且提供了发布/订阅功能,便于实现消息传递。 在Windows环境下安装Redis-x64-3.0.504,通常只需要解压缩文件到任意目录,然后通过启动`redis-server.exe`服务来运行...

    Redis 和 MSSQL 之间的数据交互.zip

    使用 Redis 的发布/订阅功能:将 MSSQL 数据库的变更作为消息发布到 Redis,然后由订阅者处理这些消息。 使用 Redis 的列表或集合:将 MSSQL 数据库中的数据同步到 Redis 的列表或集合中,然后通过 Redis 进行访问...

    async_pubsub:使用 Redis、ZMQ、Tornado 在 Python 中异步发布订阅

    要实现异步发布订阅,我们需要使用`redis-py`的`pubsub`模块,创建一个`PubSub`对象,并分别在发布者和订阅者中监听和发送消息。 ```python import redis # 创建Redis连接 r = redis.Redis(host='localhost', port...

    Python库 | sprockets.clients.redis-0.0.0-py2.py3-none-any.whl

    通过创建订阅者和发布者对象,可以实现消息的发送和接收: ```python subscriber = redis_client.Subscriber() publisher = redis_client.Publisher() # 订阅频道 subscriber.subscribe('channel') for message in...

Global site tag (gtag.js) - Google Analytics