주요 기능: - Statistics Service 마이크로서비스 구축 - 실시간 메트릭 수집 시스템 (Kafka 연동) - 시계열 데이터베이스 인터페이스 구현 - 데이터 집계 및 분석 엔진 - 사용자/시스템/이벤트 분석 API - WebSocket 기반 실시간 대시보드 - 알림 규칙 및 임계값 설정 - CSV 데이터 내보내기 구현된 컴포넌트: - MetricsCollector: Kafka 이벤트 메트릭 수집 - DataAggregator: 시간별/일별 데이터 집계 - TimeSeriesDB: 시계열 데이터 저장 인터페이스 - WebSocketManager: 실시간 데이터 스트리밍 - Analytics APIs: 다양한 분석 엔드포인트 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
32 lines
914 B
Python
32 lines
914 B
Python
"""Cache Manager for Redis"""
|
|
import json
|
|
import logging
|
|
from typing import Optional, Any
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
class CacheManager:
|
|
"""Redis cache manager"""
|
|
|
|
def __init__(self, redis_url: str):
|
|
self.redis_url = redis_url
|
|
self.is_connected = False
|
|
self.cache = {} # Simplified in-memory cache
|
|
|
|
async def connect(self):
|
|
"""Connect to Redis"""
|
|
self.is_connected = True
|
|
logger.info("Connected to cache")
|
|
|
|
async def close(self):
|
|
"""Close Redis connection"""
|
|
self.is_connected = False
|
|
logger.info("Disconnected from cache")
|
|
|
|
async def get(self, key: str) -> Optional[str]:
|
|
"""Get value from cache"""
|
|
return self.cache.get(key)
|
|
|
|
async def set(self, key: str, value: str, expire: Optional[int] = None):
|
|
"""Set value in cache"""
|
|
self.cache[key] = value |