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 中的列表解析和生成表达式
Mar 10 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python实现的简单dns查询功能示例
May 24 Python
python中利用队列asyncio.Queue进行通讯详解
Sep 10 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
May 30 Python
python中强大的format函数实例详解
Dec 05 Python
python 图像平移和旋转的实例
Jan 10 Python
Django框架首页和登录页分离操作示例
May 28 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
python openpyxl使用方法详解
Jul 18 Python
python实现LRU热点缓存及原理
Oct 29 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 17 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 Static关键字实用方法
2010/06/04 PHP
php 面向对象的一个例子
2011/04/12 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
JS控件的生命周期介绍
2012/10/22 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
JavaScript浅层克隆与深度克隆示例详解
2020/09/01 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
Python和Sublime整合过程图示
2019/12/25 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
ASP.NET Core中的配置详解
2021/02/05 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
抗震救灾标语
2014/06/26 职场文书
鲁迅故居导游词
2015/02/05 职场文书
休假证明书
2015/06/24 职场文书
Python之基础函数案例详解
2021/08/30 Python
javascript函数式编程基础
2021/09/15 Javascript
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android