Spaces:
Sleeping
Sleeping
| from abc import ABC, abstractmethod | |
| from typing import Optional, Any | |
| import hashlib | |
| import json | |
| class BaseCache(ABC): | |
| """ | |
| Abstract base class cho cache implementations | |
| """ | |
| async def get(self, key: str) -> Optional[Any]: | |
| """ | |
| Get value từ cache | |
| Args: | |
| key: Cache key | |
| Returns: | |
| Cached value hoặc None | |
| """ | |
| pass | |
| async def set(self, key: str, value: Any, ttl: Optional[int] = None) -> bool: | |
| """ | |
| Set value vào cache | |
| Args: | |
| key: Cache key | |
| value: Value to cache | |
| ttl: Time to live in seconds | |
| Returns: | |
| True nếu success | |
| """ | |
| pass | |
| async def delete(self, key: str) -> bool: | |
| """ | |
| Delete key từ cache | |
| Args: | |
| key: Cache key | |
| Returns: | |
| True nếu success | |
| """ | |
| pass | |
| async def clear(self) -> bool: | |
| """ | |
| Clear toàn bộ cache | |
| Returns: | |
| True nếu success | |
| """ | |
| pass | |
| async def exists(self, key: str) -> bool: | |
| """ | |
| Check xem key có tồn tại không | |
| Args: | |
| key: Cache key | |
| Returns: | |
| True nếu key exists | |
| """ | |
| pass | |
| def generate_key(self, prefix: str, **kwargs) -> str: | |
| """ | |
| Generate cache key từ parameters | |
| Args: | |
| prefix: Key prefix | |
| **kwargs: Parameters to include in key | |
| Returns: | |
| Generated cache key | |
| """ | |
| # Sort kwargs để đảm bảo consistent key | |
| sorted_params = json.dumps(kwargs, sort_keys=True) | |
| # Hash parameters | |
| param_hash = hashlib.md5(sorted_params.encode()).hexdigest() | |
| return f"{prefix}:{param_hash}" |