redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。也能实现订阅发布系统,我们来看看怎样用redis和python结合起来进行订阅发布的,

import  redis
class RedisSubscri():def __init__(self,host):self.coon=redis.Redis(host="127.0.0.1")def publish(self,message,channel):#发布self.coon.publish(channel,message)def subscribe(self,channel):#订阅pub=self.coon.pubsub()pub.subscribe(channel)pub.parse_response()return  pubdef unsubsceribe(self,channel):#取消订阅self.coon.pubsub().unsubscribe(channel)

核心的代码就是上面的 简单封装后就可以使用。

发布端

redisd=RedisSubscri(host='127.0.0.1')
while True:
n=input("请输入你要发布的频道:")
m=input("请输入你要发布的消息:")
redisd.publish(m,n)

订阅端

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from  dingyue import RedisSubscri
if __name__=="__main__":resad = RedisSubscri(host='127.0.0.1')meaaag = resad.subscribe('1')while True:print('监听开始')meaaage=meaaag.parse_response()print(meaaage[2].decode('utf-8'))if meaaage[2].decode('utf-8')=='1':m=meaaag.unsubscribe('fm9.01')print(m)print('取消订阅成功')break

那么我们来运行下,上述的代码,看是否能够实现登录订阅功能,并且实现退订功能。

发布端:

订阅端

我们在上面的代码中定义了,当接受消息为1的时候,我们就取消订阅,

取消订阅后就无法订阅系统的消息了,所以输出来是None。

这样就利用python 和redis实现了订阅发布的功能,其实在很多地方都可以用到redis的,深入研究在后续的文章中会介绍。

python 实现redis订阅发布功能相关推荐

  1. python redis 订阅发布_python 实现redis订阅发布功能

    redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  2. python实现Redis订阅发布

    Redis 发布订阅 Redis 发布订阅可以用在像消息通知,群聊,定向推送,参数刷新加载等业务场景 发布订阅模型有三个角色: 发布者(Publisher) 订阅者(Subscriber) 频道(ch ...

  3. 爬山的蜗牛旅程:redis 订阅发布

    学习的旅程,就像蜗牛爬山,一点点的往上爬,一点点的欣赏旅途的风景 某天,小猿向小编讲了个很好笑的笑话,第二天,全世界都知道了!这是为啥呢?请看下图: 现在大家大概知道什么是订阅和发布的概念(就是上图的 ...

  4. Redis基础—九、Redis订阅发布、Redis集群

    Redis基础-九.Redis订阅发布.Redis集群 一.Redis订阅发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息 ...

  5. redis 订阅发布

    redis 订阅发布 subscribe 订阅者 publish 发布者 1.我们启用四个进程,三个为订阅者(subscribe),一个为发布者(publish) 订阅者加入demo 发布者发布消息 ...

  6. Java实现Redis的订阅发布功能,亲测可以

    文章目录 简介 Redis发布订阅 Java发布订阅 简介 首先我们得知道,当一个用户订阅了某个频道,那么他就会一直在那监听该频道是否发出消息,是一种阻塞的状态,所以,我们把订阅功能用多线程来实现,给 ...

  7. python redis 订阅发布_【Python之旅】第七篇(三):使用Redis订阅服务

    在C/S架构中,可以充分地利用Redis订阅服务,实现服务器端和客户端的信息收发,下面说说在Python中如何使用Redistribute的订阅服务. 这里要举的例子是,Server端进行服务的订阅, ...

  8. python redis 订阅发布_Python-Redis的发布与订阅

    封装的redis_config # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import redis class Redi ...

  9. 订阅发布功能Java实现

    前言 订阅发布最常见的就是在公众号的订阅,用户订阅了公众号后,公众号发布消息时就能收到.其实他相当于设计模式中的观察者模式 大致流程图 用户首先对感兴趣的服务进行订阅,该服务在发送消息时会将消息发送至 ...

最新文章

  1. Lintcode108 Palindrome Partitioning || solution 题解
  2. 清华贵系的期末大作业:奋战三周,造台计算机!
  3. Vue开发微信H5 微信分享签名失败问题解决方案
  4. YOLOv3 Darknet安装编译与训练自己的数据集
  5. After Effects CC2019安装教程
  6. 若依微服务版新建业务模块后提示找不到mapper的解决方法
  7. PIL Image resize 调整大小谜之操作
  8. ImportError: cannot import name 'six' from 'django.utils'
  9. 计算机系统占有率,微软继续领跑PC操作系统市场 Win10占有率突破25%
  10. 查看一个定义的方法在哪些地方被使用过(vs2008)
  11. 编程语言_java_面试题0002
  12. 横向导出excel_万能转换:R图和统计表转成发表级的Word、PPT、Excel、HTML、Latex、矢量图等...
  13. Django框架(二)---- 常用命令
  14. telnet不通linux下tomcat端口
  15. 英文版 《UNIX 网络编程.卷一 (UNIX Network Programming .volume1. 3rd edition)》(pdf)高清精校版下载
  16. c语言延时函数delay延时一秒_使用树莓派拍摄延时动画,制作GIF图
  17. java 电梯调度_OO_JAVA_多线程电梯调度_单元总结
  18. oracle 返回 xml解析,Oracle xmltable解析返回LPX-00209(Oracle xmltable parsing return LPX-00209)...
  19. vm安装win xp镜像遇到的安装问题之一
  20. @JsonProperty

热门文章

  1. 从函数劫持角度看开发调试工具AlloyLever
  2. UIColor之【扩展:#FFFFFF -UIColor】
  3. 30天了解30种技术系列---(1)现代web应用服务器-Express.js
  4. (转)Unity3d UnityEditor编辑器定制和开发插件
  5. C# 程序运行耗时测试类
  6. 企业架构 - 如何实施TOGAF
  7. 未来计算在“云-端”
  8. mysql got signal 6_UTC - mysqld got signal 6
  9. 【目录】Python 入门基础篇 <(^-^)>
  10. ooalv自定义按钮、单击、双击、列编辑切换的事件用法