python redis 订阅发布

from redis.connection import Connection
import  redis
class Redis_helper(object):
    def __init__(self):
        self.__conn = redis.Redis(host="10.36.3.74",port=6379)  #创立链接
    def pub(self,msg,chan):
        self.__conn.publish(chan,msg)     #从哪一个频道发布消息
    def sub(self,chan):
        pub = self.__conn.pubsub()        #打开功能
        pub.subscribe(chan)               #订阅频道
        pub.parse_response()              #接收消息,block=(True|False),默认True阻塞
        return pub
    def redisadd(self,*args):          
        self.__conn.set(*args)            #接收key value EX time
    def redislistadd(self,*args):
        self.__conn.lpush(*args)          #接收key  value_list
    redis

发布:
from test import Redis_helperit

def redisrelease(msg):
    pub = Redis_helper()
    pub.pub(msg,'81')io

for i in range(11,20):
    data = {'host':"10.36.3.%d"% i,"问题":"cpu is more than 90%"}   #客户端手机的数据,这只是个例子
    redisrelease(data)                    #发布消息class

订阅:
import time
from  test import Redis_helpertest

def redissub():
    sub = Redis_helper()
    pub=sub.sub('81')                     #订阅与发布这同样的频道
    return  pub.parse_response()import

while True:
    A = redissub()                        #实例化接收订阅的消息结果
    B = Redis_helper()
    date_now = time.strftime("%Y-%m-%d %H:%M:%S")
    C = eval(A[-1])
    C["update"]=date_now
    B.redislistadd("host",C)               #添加时间戳并不收到的消息存储Redis   object

相关文章
相关标签/搜索