使用python的redis 实现消息的pub/sub功能
直接上代码:
首先需要明确的是,客户端向服务端去发送消息,服务端只需要订阅是哪些各频道即可,然后客户端向这些个频道发送消息
在客户端的代码:
#!/usr/bin/env python
#coding:utf-8 import redis rc = redis.Redis(host='127.0.0.1')
rc.pubsub()
rc.publish('fm100','test100')
rc.publish('fm99','test99')
服务端的代码:
#!/usr/bin/env python
#coding:utf-8 import redis rc = redis.Redis(host='127.0.0.1') ps = rc.pubsub() ps.subscribe(['fm100','fm99']) while True:
for item in ps.listen():
print item
这上面是一个死循环,表示不断的监听来自客户端发送的消息
其实更类似于一个socket的实现
我们在进行分布式监控机器的各项性能的时候,可以使用上述的代码
使用python的redis 实现消息的pub/sub功能的更多相关文章
- python 实现redis订阅发布功能
		
redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...
 - python之redis和memcache操作
		
Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...
 - 【python】Redis介绍及简单使用
		
一.redis redis是一个key-value存储系统.和 Memcached类似,它支持存储的value类型相对更多,包括string(字符串). list(链表).set(集合).zset(s ...
 - python之 Redis
		
Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...
 - Python操作Redis、Memcache、RabbitMQ、SQLAlchemy
		
Python操作 Redis.Memcache.RabbitMQ.SQLAlchemy redis介绍:redis是一个开源的,先进的KEY-VALUE存储,它通常被称为数据结构服务器,因为键可以包含 ...
 - python之redis模块
		
一.redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...
 - 【python】-- Redis简介、命令、示例
		
Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化 ...
 - redis 原生操作 &  python操作redis
		
一.基本介绍 1.简介 Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库.Redis全称为:Remote Dictionary Ser ...
 - 五、Python操作redis
		
五.Python操作redis 一.python对redis基本操作 (1)连接redis # 方式1 import redis r = redis.Redis(host='127.0.0.1', p ...
 
随机推荐
- D3的基本设计思路
			
学习一项新技术,首先要搞清楚它的基本设计思路,有了这个宏观的技术架构,使用该技术起来,就会得心应手了.否则,就会不知道如何下手,即使看到人家的例子程序,可能也不知其所以然. 下面,就简单的结合自己研究 ...
 - Android学习笔记——权限解释
			
<!--允许读取电话状态SIM的权限--><uses-permission android:name="android.permission.READ_PHONE_STAT ...
 - c++虚函数调用及使用
			
#include <iostream> using namespace std; class A { public: ; }; class B: public A { public: ; ...
 - WindowsForm的ComboBox初始化绑定并选中默认值
			
1.通过查询将默认值放到第一个,然后进行绑定 //绑定线别 private void LineBind() { SqlConnection myConnection = new SqlConnecti ...
 - ses_cations  值顺序
			
16个位置的字符所代表的操作依次如下: 1. ALTER 2. AUDIT 3.COMMENT 4.DELETE 5.GRANT 6.INDEX 7.INSERT 8.LOCK 9.RENAME 10 ...
 - linux mint 崩溃
			
换完linux mint 今天突然崩溃了.出现如下错误 因为是双屏.一个屏幕显示一般,这么不重要.搜了一下,找到解决方案 解决办法 ctrl+atl+f1 login sudo apt-get ins ...
 - HTML中让表单input等文本框为只读不可编辑的方法
			
有时候,我们希望表单中的文本框是只读的,让用户不能修改其中的信息,如使<input type="text" name="input1" value=&qu ...
 - [ActionScript 3.0] AS3.0和AS2.0的相互通信
			
AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...
 - Tree:加载列表数据
			
Tree控件,需要提供一个树形的JSON数据,才能正常显示. 通常,开发者在后台可以这样做: 1)从数据库查询出一个列表数据 2)在后台,将列表数据转换为树形数据 3)通过JSON方式返回 在前台页面 ...
 - ZYNQ学习之——MIO
			
1.GPIO基础知识 Zynq7000 系列芯片有 54 个 MIO(multiuse I/O) ,它们分配在 GPIO 的 Bank0 和Bank1 隶属于 PS 部分, 这些 IO 与 PS 直接 ...