""" redis管理器 """ import redis import constant from log_module.log import logger_redis_debug config = constant.REDIS_CONFIG pool_cache = {} class RedisManager: def __init__(self, db=config["db"]): pool = None if db in pool_cache: pool = pool_cache[db] else: pool = redis.ConnectionPool(host=config["host"], port=config["port"], password=config["pwd"], db=db, decode_responses=True, max_connections=50) pool_cache[db] = pool self.pool = pool def getRedis(self): return redis.Redis(connection_pool=self.pool) class RedisUtils: @classmethod def get(cls, redis_, key, auto_free=True): try: logger_redis_debug.info("get:{}",key) return redis_.get(key) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def scard(cls, redis_, key, auto_free=True): try: return redis_.scard(key) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def delete(cls, redis_, key, auto_free=True): try: logger_redis_debug.info("delete:{}", key) return redis_.delete(key) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def keys(cls, redis_, key, auto_free=True): try: logger_redis_debug.info("keys:{}", key) return redis_.keys(key) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def set(cls, redis_, key, val, auto_free=True): try: logger_redis_debug.info("set:{}", key) return redis_.set(key, val) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def setex(cls, redis_, key, expire, val, auto_free=True): logger_redis_debug.info("setex:{}", key) try: return redis_.setex(key, expire, val) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def setnx(cls, redis_, key, val, auto_free=True): try: logger_redis_debug.info("setnx:{}", key) return redis_.setnx(key, val) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def expire(cls, redis_, key, expire, auto_free=True): try: logger_redis_debug.info("expire:{}", key) return redis_.expire(key, expire) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def sadd(cls, redis_, key, val, auto_free=True): try: logger_redis_debug.info("sadd:{}", key) return redis_.sadd(key, val) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def sismember(cls, redis_, key, val, auto_free=True): try: logger_redis_debug.info("sismember:{}", key) return redis_.sismember(key, val) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def smembers(cls, redis_, key, auto_free=True): try: logger_redis_debug.info("smembers:{}", key) return redis_.smembers(key) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def srem(cls, redis_, key, val, auto_free=True): try: logger_redis_debug.info("srem:{}", key) return redis_.srem(key, val) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def incrby(cls, redis_, key, num, auto_free=True): try: logger_redis_debug.info("incrby:{}", key) return redis_.incrby(key, num) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def lpush(cls, redis_, key, val, auto_free=True): try: logger_redis_debug.info("lpush:{}", key) return redis_.lpush(key, val) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def lpop(cls, redis_, key, auto_free=True): try: logger_redis_debug.info("lpop:{}", key) return redis_.lpop(key) finally: if auto_free: redis_.connection_pool.disconnect() @classmethod def rpush(cls, redis_, key, val, auto_free=True): try: logger_redis_debug.info("rpush:{}", key) return redis_.rpush(key, val) finally: if auto_free: redis_.connection_pool.disconnect() if __name__ == "__main__": pass