zoukankan      html  css  js  c++  java
  • RedisPool

    class RedisPool(object):
        instance = None
    
        def __init__(self, host='192.168.2.129', port=7000, password='C11O47S@xxx', db=5):
            self.host = 'localhost' if debug == 1 else host
            self.port = 6379 if debug == 1 else port
            self.password = 'root' if debug == 1 else password
            self.db = '0' if debug == 1 else db
            self.pool = redis.ConnectionPool(host=self.host, port=self.port, password=self.password, db=self.db)
            self.conn = redis.Redis(connection_pool=self.pool)
            self.keys = None
            # self.p = self.conn.pipeline(transaction=False)
    
        def __new__(cls, *args, **kwargs):
            if cls.instance:
                return cls.instance
            else:
                return super().__new__(cls)
    
        def __enter__(self):
            if not hasattr(self, 'keys') or self.keys is None:
                self.keys = self.fetch_keys()
            return self
    
        def __exit__(self, exc_type, exc_val, exc_tb):
            try:
                # self.p.close()
                self.conn.close()
            except:
                raise Exception("关闭redis链接异常")
    
        def fetch_keys(self):
            keys = self.conn.keys()
            return [key.decode() for key in keys if 'list' in self.conn.type(key.decode()).decode()]
    
        def push_to_key(self, key, line):
            self.conn.lpush(key, line)
    
        def total_by_key(self, key):
            return self.conn.llen(key)
    
        def pop_key(self, key):
            return self.conn.lpop(key)
    
        def fetch_from_redis(self, rediskey=None):
            if rediskey is None:
                return None
            try:
                line = self.pop_key(rediskey)
            except Exception as e:
                print("{key} has no records".format(key=rediskey))
                return None
            return line
  • 相关阅读:
    最值
    算数平均值/加权平均值
    jdbatemplate使用
    所有正规jar包
    java代码在计算机中经历的三个阶段,反射的原理
    lambda函数式编程思想
    重写equals方法
    安全牛-弱点扫描
    安全牛-主动收集
    安全牛-被动收集
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/12765335.html
Copyright © 2011-2022 走看看