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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
Python 对象中的数据类型
May 13 Python
python实现微信自动回复功能
Apr 11 Python
基于Python List的赋值方法
Jun 23 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
python下载微信公众号相关文章
Feb 26 Python
Python中的类与类型示例详解
Jul 10 Python
python实发邮件实例详解
Nov 11 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 Python
pytorch下的unsqueeze和squeeze的用法说明
Feb 06 Python
简述python四种分词工具,盘点哪个更好用?
Apr 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
PHP 批量更新网页内容实现代码
2010/01/05 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
dess中一个简单的多路委托的实现
2010/07/20 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python imread、newaxis用法详解
2019/11/04 Python
python里反向传播算法详解
2020/11/22 Python
新大陆软件面试题
2016/11/24 面试题
机电一体化大学生求职信
2013/11/08 职场文书
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
揭牌仪式主持词
2014/03/19 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
学校四群教育实施方案
2014/06/12 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
企业财务管理制度范本
2015/08/04 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书