"""
|
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 get(cls, redis_, key, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.get(key)
|
finally:
|
logger_redis_debug.info("get({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def scard(cls, redis_, key, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.scard(key)
|
finally:
|
logger_redis_debug.info("scard({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def delete(cls, redis_, key, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.delete(key)
|
finally:
|
logger_redis_debug.info("delete({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def keys(cls, redis_, key, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.keys(key)
|
finally:
|
logger_redis_debug.info("keys({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def set(cls, redis_, key, val, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.set(key, val)
|
finally:
|
logger_redis_debug.info("set({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def setex(cls, redis_, key, expire, val, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.setex(key, expire, val)
|
finally:
|
logger_redis_debug.info("setex({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def setnx(cls, redis_, key, val, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.setnx(key, val)
|
finally:
|
logger_redis_debug.info("setnx({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def expire(cls, redis_, key, expire, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.expire(key, expire)
|
finally:
|
logger_redis_debug.info("expire({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def sadd(cls, redis_, key, val, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.sadd(key, val)
|
finally:
|
logger_redis_debug.info("sadd({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def sismember(cls, redis_, key, val, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.sismember(key, val)
|
finally:
|
logger_redis_debug.info("sismember({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def smembers(cls, redis_, key, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.smembers(key)
|
finally:
|
logger_redis_debug.info("smembers({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def srem(cls, redis_, key, val, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.srem(key, val)
|
finally:
|
logger_redis_debug.info("srem({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def incrby(cls, redis_, key, num, auto_free=True):
|
__start_time = time.time()
|
try:
|
return redis_.incrby(key, num)
|
finally:
|
logger_redis_debug.info("incrby({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def lpush(cls, redis_, key, val, auto_free=True):
|
__start_time = time.time()
|
try:
|
|
return redis_.lpush(key, val)
|
finally:
|
logger_redis_debug.info("lpush({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def lpop(cls, redis_, key, auto_free=True):
|
__start_time = time.time()
|
try:
|
|
return redis_.lpop(key)
|
finally:
|
logger_redis_debug.info("lpop({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def rpush(cls, redis_, key, val, auto_free=True):
|
__start_time = time.time()
|
try:
|
|
return redis_.rpush(key, val)
|
finally:
|
logger_redis_debug.info("rpush({}):{}", round((time.time() - __start_time) * 1000, 3), key)
|
if auto_free:
|
# redis_.connection_pool.disconnect()
|
pass
|
|
@classmethod
|
def realse(cls, redis_):
|
pass
|
|
|
if __name__ == "__main__":
|
redisManager = RedisManager(0)
|
for i in range(0, 50):
|
print(i)
|
redis = redisManager.getRedis()
|
redis
|