45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何通过Python使用redis pool?

如何通过Python使用redis pool?

2016-09-27 19:39:45 来源:www.45fan.com 【

如何通过Python使用redis pool?

本文实例讲述了Python使用redis pool的一种单例实现方式。分享给大家供大家参考,具体如下:

为适应多个redis实例共享同一个连接池的场景,可以类似于以下单例方式实现:

import redis
class RedisDBConfig:
 HOST = '127.0.0.1'
 PORT = 6379
 DBID = 0
def operator_status(func):
 '''''get operatoration status
 '''
 def gen_status(*args, **kwargs):
  error, result = None, None
  try:
   result = func(*args, **kwargs)
  except Exception as e:
   error = str(e)
  return {'result': result, 'error': error}
 return gen_status
class RedisCache(object):
 def __init__(self):
  if not hasattr(RedisCache, 'pool'):
   RedisCache.create_pool()
  self._connection = redis.Redis(connection_pool = RedisCache.pool)
 @staticmethod
 def create_pool():
  RedisCache.pool = redis.ConnectionPool(
    host = RedisDBConfig.HOST,
    port = RedisDBConfig.PORT,
    db = RedisDBConfig.DBID)
 @operator_status
 def set_data(self, key, value):
  '''''set data with (key, value)
  '''
  return self._connection.set(key, value)
 @operator_status
 def get_data(self, key):
  '''''get data by key
  '''
  return self._connection.get(key)
 @operator_status
 def del_data(self, key):
  '''''delete cache by key
  '''
  return self._connection.delete(key)
if __name__ == '__main__':
 print RedisCache().set_data('Testkey', "Simple Test")
 print RedisCache().get_data('Testkey')
 print RedisCache().del_data('Testkey')
 print RedisCache().get_data('Testkey')

希望本文所述对大家Python程序设计有所帮助。


本文地址:http://www.45fan.com/a/question/76088.html
Tags: Redis python pool
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部