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 21 Python
详解Swift中属性的声明与作用
Jun 30 Python
python利用rsa库做公钥解密的方法教程
Dec 10 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
python获取代码运行时间的实例代码
Jun 11 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
python实现最小二乘法线性拟合
Jul 19 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
Python多继承以及MRO顺序的使用
Nov 11 Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 Python
Python序列化与反序列化相关知识总结
Jun 08 Python
Python 图片添加美颜效果
Apr 28 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
Python中不同进制的语法及转换方法分析
2016/07/27 Python
python:print格式化输出到文件的实例
2018/05/14 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
巴西网上药房:onofre
2016/11/21 全球购物
戴森英国官网:Dyson英国
2019/05/07 全球购物
应届毕业生个人自我评价
2013/09/20 职场文书
满月酒主持词
2014/03/27 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
先进班集体事迹材料
2014/12/25 职场文书
地道战观后感500字
2015/06/04 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
vscode内网访问服务器的方法
2022/06/28 Servers