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实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
详解在Python中处理异常的教程
May 24 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
Tensorflow 查看变量的值方法
Jun 14 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
简单了解Python读取大文件代码实例
Dec 18 Python
关于python中的xpath解析定位
Mar 06 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
Python中bisect的用法及示例详解
Jul 20 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
用PHP和ACCESS写聊天室(四)
2006/10/09 PHP
php 日期时间处理函数小结
2009/12/18 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
php微信开发之上传临时素材
2016/06/24 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
JQUERY获取form表单值的代码
2010/07/17 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
python使用post提交数据到远程url的方法
2015/04/29 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
学校岗位设置方案
2014/01/16 职场文书
幼儿园教师工作制度
2014/01/22 职场文书
超市促销活动方案
2014/03/05 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
大雁塔导游词
2015/02/04 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript