diff --git a/backend/app/cache/multi_tier.py b/backend/app/cache/multi_tier.py index 8ba1e787..6902b5a0 100644 --- a/backend/app/cache/multi_tier.py +++ b/backend/app/cache/multi_tier.py @@ -4,6 +4,7 @@ import inspect import json import logging +import os from typing import Any, Optional, Callable from functools import wraps from cachetools import TTLCache @@ -32,15 +33,24 @@ def __init__( self, local_size: int = 1000, local_ttl: int = 300, +<<<<<<< HEAD + redis_url: str | None = None, +======= redis_url: Optional[str] = None, +>>>>>>> origin/main ): """Initialize multi-tier cache. Args: local_size: Max items in local cache local_ttl: TTL for local cache items (seconds) +<<<<<<< HEAD + redis_url: Redis connection URL. Defaults to HYPERCODE_REDIS_URL + env var, falling back to redis://redis:6379/1. +======= redis_url: Redis connection URL. If None, derives from settings.HYPERCODE_REDIS_URL on DB 1 (cache convention). +>>>>>>> origin/main """ if redis_url is None: from urllib.parse import urlparse, urlunparse @@ -50,7 +60,7 @@ def __init__( parsed = urlparse(settings.HYPERCODE_REDIS_URL) redis_url = urlunparse(parsed._replace(path="/1")) self.local_cache = TTLCache(maxsize=local_size, ttl=local_ttl) - self.redis_url = redis_url + self.redis_url = redis_url or os.getenv("HYPERCODE_REDIS_URL", "redis://redis:6379/1") self.redis_client = None self.stats = { "hits": 0, @@ -227,7 +237,7 @@ async def get_cache() -> MultiTierCache: global _cache_instance if _cache_instance is None: - _cache_instance = MultiTierCache() + _cache_instance = MultiTierCache() # picks up HYPERCODE_REDIS_URL via __init__ await _cache_instance.connect() return _cache_instance