Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關係數據庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,本文是python 的客戶端,現在我們直接上代碼來說明其簡單的應用
#!/usr/bin/env python
#encoding:utf-8
import redis
import os
import configparser as cparser
from framework.logger import Logger
import time
#========讀取config.ini文件中redis配置========
base_dir = str(os.path.dirname(os.path.dirname(file)))
file_path = base_dir + r"\config\config.ini"
cf = cparser.ConfigParser()
cf.read(file_path)
host = cf.get("sitredisconf", "host")
port = cf.get("sitredisconf", 'port')
logger = Logger(logger="redisUtils").getlog()
print(host,port)
===========封裝redis基本操作=============
class redisUtils:
def __init__(self,host,port):
try:
self.pool = redis.ConnectionPool(host=host, port=port,db=0)
self.conn = redis.Redis(connection_pool=self.pool)
except redis.ConnectionError as e:
logger.exception('Connected failed:%s'%e)
def set(self,key,value):
self.conn.set(key, value)
def get(self,key):
pipe = self.conn.pipeline(transaction=True)
return self.conn.get(key)
pipe.execute()
def delete(self,key):
return self.conn.delete(key)
def isKeyExists(self,name):
'''判斷key是否存在'''
return self.conn.exists(name)
def bitcount(self,key):
return self.conn.bitcount(key)
def get_value(self,Key):
'''60秒拿特定key的值'''
# redisValue = {}
seconds = 60
count = 0
while (count < seconds):
count += 1
n = seconds - count
logger.info('remain %s seconds' % n)
time.sleep(1)
redisValue = self.get(Key.strip())
if redisValue:
break
if redisValue:
logger.info('此規則的key爲:%s,值爲: %s' % (Key, redisValue))
else:
logger.exception('此規則的key爲:%s,值爲: %s' % (Key, redisValue))
return redisValue
if name == 'main':
r = redisUtils(host,port)
key = '7b6a99f3bce14915863cde5104bdf2c3_null_DD_AMT_d27c6b10ad1f4c48898_20171212'
r.get_value(key)