""" redis 配置类 """ import sys import redis from configs import default class RedisCli(object): def __init__(self, *, host: str, port: str, password: str, db: int, socket_timeout=5): # redis对象,在 @app.on_event('startup') 中连接创建 self._redis_client = None self.host = host self.port = port self.password = password self.db = db self.socket_timeout = socket_timeout def init_redis_connect(self) -> None: """ 初始化链接 :return: """ try: r = redis.ConnectionPool( host=self.host, port=self.port, password=self.password, db=self.db, socket_timeout=self.socket_timeout, decode_responses=True # 解码 ) self._redis_client = redis.StrictRedis(connection_pool=r) if not self._redis_client.ping(): print('连接超时') sys.exit() except (redis.AuthenticationError, Exception) as e: print('连接redis异常') sys.exit() def get_redis(self): return self._redis_client # 使实例化后的对象,赋予redis对象的方法和属性 def __getattr__(self, item): return self._redis_client.has_key(item) def __getitem__(self, item): return self._redis_client[item] def __setitem__(self, key, value): self._redis_client[key] = value def __delitem__(self, key): del self._redis_client[key] redis_client = RedisCli( host=default.db['host'], port=default.db['port'], password=default.db['password'], db=default.db['db'], )