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