import redis.asyncio as aioredis from app.config import config from app.utils.logger import logger class RedisClient: def __init__(self): self.client = None async def connect(self): if self.client is None: redis_url = config["database"]["redis"]["url"] self.client = await aioredis.from_url( redis_url, encoding="utf-8", decode_responses=True ) logger.info("Redis connected") return self.client async def disconnect(self): if self.client: await self.client.close() logger.info("Redis disconnected") async def get_client(self): if self.client is None: await self.connect() return self.client redis_client = RedisClient()