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