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判断两个对象相等的原理
Dec 12 Python
如何用python整理附件
May 13 Python
pycharm设置注释颜色的方法
May 23 Python
tensorflow 获取变量&打印权值的实例讲解
Jun 14 Python
python修改txt文件中的某一项方法
Dec 29 Python
Python实现去除图片中指定颜色的像素功能示例
Apr 13 Python
浅谈Python type的使用
Nov 19 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
基于python实现计算两组数据P值
Jul 10 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 Python
python如何读取.mtx文件
Apr 22 Python
python自动获取微信公众号最新文章的实现代码
Jul 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来检测proxy
2006/10/09 PHP
PHP 读取和编写 XML
2014/11/19 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
php生成无限栏目树
2017/03/16 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
bootstrap网格系统使用方法解析
2017/01/13 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
python出现"IndentationError: unexpected indent"错误解决办法
2017/10/15 Python
浅析Python函数式编程
2018/10/06 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
掌上明珠Java程序员面试总结
2016/02/23 面试题
初中升旗仪式演讲稿
2014/05/08 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
交通工程专业推荐信
2014/09/06 职场文书
教师工作失职检讨书
2014/09/18 职场文书