redis.py 647 B

12345678910111213141516171819202122232425262728
  1. import logging
  2. from redis.asyncio import Redis
  3. from app.config import settings
  4. logger = logging.getLogger(__name__)
  5. redis_client: Redis | None = None
  6. async def get_redis() -> Redis:
  7. global redis_client
  8. if redis_client is None:
  9. redis_client = Redis(
  10. host=settings.redis_host,
  11. port=settings.redis_port,
  12. password=settings.redis_password or None,
  13. db=settings.redis_db,
  14. decode_responses=True,
  15. )
  16. return redis_client
  17. async def close_redis() -> None:
  18. global redis_client
  19. if redis_client:
  20. await redis_client.aclose()
  21. redis_client = None