admin
2025-06-04 287c506725b2d970f721f80169f83c2418cb0991
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
"""
redis管理器
"""
import time
 
import redis
 
import constant
from log_module.log import logger_redis_debug
 
config = constant.REDIS_CONFIG
 
pool_caches = [redis.ConnectionPool(host=config["host"], port=config["port"], password=config["pwd"],
                                    db=db, decode_responses=True, max_connections=50) for db in range(16)]
 
 
class RedisManager:
 
    def __init__(self, db=config["db"]):
        self.pool = pool_caches[db]
        self.db = db
 
    def getRedis(self):
        return redis.Redis(connection_pool=self.pool)
 
    def getRedisNoPool(self):
        return redis.Redis(host=config["host"], port=config["port"], password=config["pwd"], db=self.db,
                           decode_responses=True)
 
 
class RedisUtils:
 
    @classmethod
    def exec(cls, method_name, key, lamada_method):
        __start_time = time.time()
        try:
            return lamada_method()
        finally:
            logger_redis_debug.info("{}({}):{}", method_name, round((time.time() - __start_time) * 1000, 3), key)
 
    @classmethod
    def get(cls, redis_, key, auto_free=True):
        return cls.exec("get", key, lambda: redis_.get(key))
 
    @classmethod
    def scard(cls, redis_, key, auto_free=True):
        return cls.exec("scard", key, lambda: redis_.scard(key))
 
    @classmethod
    def delete(cls, redis_, key, auto_free=True, _async=False):
        return cls.exec("delete", key, lambda: redis_.delete(key))
 
    @classmethod
    def keys(cls, redis_, key, auto_free=True):
        return cls.exec("keys", key, lambda: redis_.keys(key))
 
    @classmethod
    def set(cls, redis_, key, val, auto_free=True):
        return cls.exec("set", key, lambda: redis_.set(key, val))
 
    @classmethod
    def setex(cls, redis_, key, expire, val, auto_free=True, _async=False):
        return cls.exec("setex", key, lambda: redis_.setex(key, expire, val))
 
    @classmethod
    def setnx(cls, redis_, key, val, auto_free=True):
        return cls.exec("setnx", key, lambda: redis_.setnx(key, val))
 
    @classmethod
    def expire(cls, redis_, key, expire, auto_free=True):
        return cls.exec("expire", key, lambda: redis_.expire(key, expire))
 
    @classmethod
    def sadd(cls, redis_, key, val, auto_free=True):
        return cls.exec("sadd", key, lambda: redis_.sadd(key, val))
 
    @classmethod
    def sismember(cls, redis_, key, val, auto_free=True):
        return cls.exec("sismember", key, lambda: redis_.sismember(key, val))
 
    @classmethod
    def smembers(cls, redis_, key, auto_free=True):
        return cls.exec("smembers", key, lambda: redis_.smembers(key))
 
    @classmethod
    def srem(cls, redis_, key, val, auto_free=True):
        return cls.exec("srem", key, lambda: redis_.srem(key, val))
 
    @classmethod
    def incrby(cls, redis_, key, num, auto_free=True, _async=False):
        return cls.exec("incrby", key, lambda: redis_.incrby(key, num))
 
    @classmethod
    def lpush(cls, redis_, key, val, auto_free=True):
        return cls.exec("lpush", key, lambda: redis_.lpush(key, val))
 
    @classmethod
    def lpop(cls, redis_, key, auto_free=True):
        return cls.exec("lpop", key, lambda: redis_.lpop(key))
 
    @classmethod
    def rpush(cls, redis_, key, val, auto_free=True):
        return cls.exec("rpush", key, lambda: redis_.rpush(key, val))
 
    @classmethod
    def realse(cls, redis_):
        pass
 
 
if __name__ == "__main__":
    pass