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 相关文章推荐
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
关于python的list相关知识(推荐)
Aug 30 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
python实现对文件中图片生成带标签的txt文件方法
Apr 27 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
浅谈Python3中print函数的换行
Aug 05 Python
一篇文章教你用python画动态爱心表白
Nov 22 Python
Django如何与Ajax交互
Apr 29 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输出xml格式字符串(用的这个)
2012/07/12 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
20个最新的jQuery插件
2012/01/13 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
python字典排序实例详解
2015/05/20 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
如何理解Python中的变量
2020/06/01 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
程序员经常用到的UNIX命令
2015/04/13 面试题
经济管理专业自荐信
2013/12/30 职场文书
前处理班长职位说明书
2014/03/01 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis