| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | from typing import Optionalfrom pydantic import Field, NonNegativeInt, PositiveFloat, PositiveIntfrom pydantic_settings import BaseSettingsclass RedisConfig(BaseSettings):    """    Configuration settings for Redis connection    """    REDIS_HOST: str = Field(        description="Hostname or IP address of the Redis server",        default="localhost",    )    REDIS_PORT: PositiveInt = Field(        description="Port number on which the Redis server is listening",        default=6379,    )    REDIS_USERNAME: Optional[str] = Field(        description="Username for Redis authentication (if required)",        default=None,    )    REDIS_PASSWORD: Optional[str] = Field(        description="Password for Redis authentication (if required)",        default=None,    )    REDIS_DB: NonNegativeInt = Field(        description="Redis database number to use (0-15)",        default=0,    )    REDIS_USE_SSL: bool = Field(        description="Enable SSL/TLS for the Redis connection",        default=False,    )    REDIS_USE_SENTINEL: Optional[bool] = Field(        description="Enable Redis Sentinel mode for high availability",        default=False,    )    REDIS_SENTINELS: Optional[str] = Field(        description="Comma-separated list of Redis Sentinel nodes (host:port)",        default=None,    )    REDIS_SENTINEL_SERVICE_NAME: Optional[str] = Field(        description="Name of the Redis Sentinel service to monitor",        default=None,    )    REDIS_SENTINEL_USERNAME: Optional[str] = Field(        description="Username for Redis Sentinel authentication (if required)",        default=None,    )    REDIS_SENTINEL_PASSWORD: Optional[str] = Field(        description="Password for Redis Sentinel authentication (if required)",        default=None,    )    REDIS_SENTINEL_SOCKET_TIMEOUT: Optional[PositiveFloat] = Field(        description="Socket timeout in seconds for Redis Sentinel connections",        default=0.1,    )    REDIS_USE_CLUSTERS: bool = Field(        description="Enable Redis Clusters mode for high availability",        default=False,    )    REDIS_CLUSTERS: Optional[str] = Field(        description="Comma-separated list of Redis Clusters nodes (host:port)",        default=None,    )    REDIS_CLUSTERS_PASSWORD: Optional[str] = Field(        description="Password for Redis Clusters authentication (if required)",        default=None,    )
 |