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 相关文章推荐
使用PDB模式调试Python程序介绍
Apr 05 Python
详解Python中for循环的使用方法
May 14 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
Python异常处理操作实例详解
Aug 28 Python
对pandas处理json数据的方法详解
Feb 08 Python
python 杀死自身进程的实现方法
Jul 01 Python
python 直接赋值和copy的区别详解
Aug 07 Python
原生python实现knn分类算法
Oct 24 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 Python
python异常中else的实例用法
Jun 15 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学习教程之第1天
2008/06/15 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
显示、隐藏密码
2006/07/01 Javascript
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
Django框架中方法的访问和查找
2015/07/15 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
有关爱国演讲稿
2014/05/07 职场文书
汽车专业求职信
2014/06/05 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
体育教师研修感悟
2015/11/18 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python