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批量替换页眉页脚实例代码
Jan 22 Python
python实现数据库跨服务器迁移
Apr 12 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
python使用celery实现异步任务执行的例子
Aug 28 Python
Python Lambda函数使用总结详解
Dec 11 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
给 TensorFlow 变量进行赋值的方式
Feb 10 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
python实现计算器简易版
Dec 17 Python
python 生成正态分布数据,并绘图和解析
Dec 21 Python
Python爬虫入门案例之爬取二手房源数据
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
mysql时区问题
2008/03/26 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
Python实现的ini文件操作类分享
2014/11/20 Python
python计算圆周率pi的方法
2015/07/11 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
Python绘图实现显示中文
2019/12/04 Python
Python Django view 两种return的实现方式
2020/03/16 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
2014年端午节演讲稿范文
2014/05/23 职场文书
销售类求职信
2014/06/13 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
课外活动总结
2015/02/04 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书