Files
MediaFusion/db/redis_database.py

27 lines
1000 B
Python

import redis
from db.config import settings
pool_settings = {
"max_connections": settings.redis_max_connections, # Maximum number of connections per pod
"socket_timeout": 5.0, # Socket timeout in seconds
"socket_connect_timeout": 2.0, # Connection timeout
"socket_keepalive": True, # Keep connections alive
"health_check_interval": 30, # Health check every 30 seconds
"retry_on_timeout": True,
"decode_responses": False, # Automatically decode responses to Python strings
"retry_on_error": [redis.exceptions.ConnectionError], # Retry on connection errors
}
# Create sync client with connection pooling
REDIS_SYNC_CLIENT: redis.Redis = redis.Redis(
connection_pool=redis.ConnectionPool.from_url(settings.redis_url, **pool_settings)
)
# Create async client with connection pooling
REDIS_ASYNC_CLIENT: redis.asyncio.Redis = redis.asyncio.Redis(
connection_pool=redis.asyncio.ConnectionPool.from_url(
settings.redis_url, **pool_settings
)
)