Python使用redis pool的一种单例实现方式


Posted in Python onApril 16, 2016

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
深入理解python多进程编程
Jun 12 Python
5款非常棒的Python工具
Jan 05 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
May 21 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 Python
python对视频画框标记后保存的方法
Dec 07 Python
python调用matlab的m自定义函数方法
Feb 18 Python
python脚本开机自启的实现方法
Jun 28 Python
Python整数对象实现原理详解
Jul 01 Python
重写django的model下的objects模型管理器方式
May 15 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
python openssl模块安装及用法
Dec 06 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 Python
说一说Python logging
Apr 15 #Python
Python Web框架Tornado运行和部署
Oct 19 #Python
Python爬虫爬验证码实现功能详解
Apr 14 #Python
Python实现简单登录验证
Apr 13 #Python
Python数组定义方法
Apr 13 #Python
Python基于select实现的socket服务器
Apr 13 #Python
Python简单实现子网掩码转换的方法
Apr 13 #Python
You might like
php缓冲 output_buffering的使用详解
2013/06/13 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
php define的第二个参数使用方法
2013/11/04 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
Python OpenCV实现视频分帧
2019/06/01 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
python爬虫请求头设置代码
2020/07/28 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
毕业留言寄语大全
2014/04/10 职场文书
基层党员公开承诺书
2014/05/29 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
委托证明模板
2014/09/16 职场文书
防灾减灾标语
2014/10/07 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
小王子读书笔记
2015/06/29 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
python数字类型和占位符详情
2022/03/13 Python
Selenium浏览器自动化如何上传文件
2022/04/06 Python
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers