import redis.asyncio as aioredis from core.config import settings _redis_pool: aioredis.Redis | None = None async def init_redis() -> None: global _redis_pool _redis_pool = aioredis.from_url( settings.REDIS_URL, encoding="utf-8", decode_responses=True ) async def close_redis() -> None: if _redis_pool: await _redis_pool.aclose() async def get_redis() -> aioredis.Redis: if _redis_pool is None: raise RuntimeError("Redis pool has not been initialized") return _redis_pool