博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis的订阅和发布
阅读量:6293 次
发布时间:2019-06-22

本文共 1299 字,大约阅读时间需要 4 分钟。

#订阅和发布有什么用呢? # 特点 # 1、实现一个一对多的效果,只有一个发布者,多个订阅者 # 2、实时的发布消息,广播方发布消息,所有的订阅者都会受到消息,一个人同时只能接受 #一个频道 1、先写一个公共的类,这个类发布方和订阅方都可以调用,我们在这个类中分别定义了发布方的方法和订阅方的方法
import redisclass RedisHelper(object):    def __init__(self):        self.conn = redis.Redis(host="127.0.0.1")        #首先连上redis        self.chan_sub = "fm100.4"        #订阅频道        self.chan_pub = "fm100.4"        #发布频道    def public(self,msg):        self.conn.publish(self.chan_pub,msg)        # 发布消息,往self.chan_pub这个频道发布消息,消息的内容是msg        return  True    def subscribe(self):        pub = self.conn.pubsub()        #生成一个实例,相当于打开收音机        pub.subscribe(self.chan_sub)        #订阅self.chan_sub这个频道的内容        pub.parse_response()        #准备监听发布方发布的消息,这里仅仅是准备监听,只有当真正的实例去调用这个parse_response方法,才会真正的开始监听消息        return pub

 

 

2、在订阅方中导入我们公共的类,然后实例化一个订阅方的对象

from test_redis_class import RedisHelperobj = RedisHelper()#先实例化,连接发布方redis_sub = obj.subscribe()while True:    msg = redis_sub.parse_response()    #这里开始真正的听,如果发布方有消息过来,则打印消息,如果    #广播方没有消息过来,则一直阻塞    print(msg)

 

3、在发布方中导入我们公共的类,然后实例化一个发布方的对象

from test_redis_class import RedisHelper"""方法1import redisr = redis.Redis()#发布消息下面这个命令的返回值就是有多少订阅方收到广播的消息r.publish("fm100.4","hahahahah")"""# 方法2#发布消息obj = RedisHelper()obj.public("啊哈哈哈哈啊哈哈")

  

转载于:https://www.cnblogs.com/bainianminguo/p/7498629.html

你可能感兴趣的文章
CuteEditor Html中显示Word格式粘贴的文章[CuteEditor WordToHtml]
查看>>
zabbix 二次开发之调用api接口获取历史数据
查看>>
给自己定的目标
查看>>
LAMP平台部署及应用
查看>>
Supervisor 托管服务
查看>>
分享一下收到的微软CRM云分享计划 邮件
查看>>
DVWA系列之21 存储型XSS分析与利用
查看>>
Hyper-V 2016 系列教程25 配置NFS 存储服务器
查看>>
vCloud Automation Center (vCAC) 6.0 (一)
查看>>
oracle 11g dataguard安装出现的错误
查看>>
Microsoft Dynamics CRM 2013 试用之系统篇 Windows Server 2012 R2安装
查看>>
Skype For Business 2015实战系列6:后端数据库安装CU6补丁
查看>>
web安全之信息刺探防范(上)
查看>>
Oracle CRS的管理与维护
查看>>
开启Sharepoint 2013站点邮箱
查看>>
【VMCloud云平台】SCO(一)规划
查看>>
相对路径和绝对路径错误造成的漏洞
查看>>
元胞自动机:更接近人类思考的智能模型
查看>>
ISCSI网络存储
查看>>
开源跳板机(堡垒机)Jumpserver v0.2.0 使用说明
查看>>