import redis
from .config import settings

# Connection Pooling Configuration
redis_pool = redis.ConnectionPool(
    host=settings.REDIS_URL.split('@')[1].split(':')[0] if '@' in settings.REDIS_URL else 'localhost',
    port=int(settings.REDIS_URL.split(':')[-1].split('/')[0]) if ':' in settings.REDIS_URL else 6379,
    password=settings.REDIS_URL.split(':')[2].split('@')[0] if '@' in settings.REDIS_URL else None,
    db=0,
    max_connections=20,  # Maximum number of connections in the pool
    decode_responses=True
)

redis_client = redis.Redis(connection_pool=redis_pool)


def get_redis():
    return redis_client
