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写的图片蜘蛛人代码
Aug 27 Python
python中ConfigParse模块的用法
Sep 29 Python
python实现查询IP地址所在地
Mar 29 Python
Python使用Django实现博客系统完整版
Sep 29 Python
Python之list对应元素求和的方法
Jun 28 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
python sorted函数原理解析及练习
Feb 10 Python
PyTorch笔记之scatter()函数的使用
Feb 12 Python
Python实现AI换脸功能
Apr 10 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
如何用python处理excel表格
Jun 09 Python
Python 生成短8位唯一id实战教程
Jan 13 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
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
python3序列化与反序列化用法实例
2015/05/26 Python
详解django中使用定时任务的方法
2018/09/27 Python
python实现控制COM口的示例
2019/07/03 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
python中remove函数的踩坑记录
2021/01/04 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
中专生自荐信
2013/10/12 职场文书
小学语文课后反思精选
2014/04/25 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
个人承诺书格式范文
2015/04/29 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
教育教学读书笔记
2015/07/02 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
一些让Python代码简洁的实用技巧总结
2021/08/23 Python
Python图片验证码降噪和8邻域降噪
2021/08/30 Python