109 lines
2.3 KiB
Python
109 lines
2.3 KiB
Python
from abc import ABC, abstractmethod
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
|
|
class BaseStorage(ABC):
|
|
"""
|
|
存储接口抽象基类
|
|
定义所有存储模块需要实现的基本方法
|
|
"""
|
|
|
|
@abstractmethod
|
|
def save(self, key: str, value: Any) -> bool:
|
|
"""
|
|
保存数据
|
|
|
|
Args:
|
|
key: 键
|
|
value: 值
|
|
|
|
Returns:
|
|
bool: 保存是否成功
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
def load(self, key: str, default: Any = None) -> Any:
|
|
"""
|
|
加载数据
|
|
|
|
Args:
|
|
key: 键
|
|
default: 默认值
|
|
|
|
Returns:
|
|
Any: 加载的数据
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
def delete(self, key: str) -> bool:
|
|
"""
|
|
删除数据
|
|
|
|
Args:
|
|
key: 要删除的键
|
|
|
|
Returns:
|
|
bool: 删除是否成功
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
def exists(self, key: str) -> bool:
|
|
"""
|
|
检查键是否存在
|
|
|
|
Args:
|
|
key: 键
|
|
|
|
Returns:
|
|
bool: 键是否存在
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
def list_keys(self) -> List[str]:
|
|
"""
|
|
列出所有键
|
|
|
|
Returns:
|
|
List[str]: 所有键的列表
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
def clear(self) -> bool:
|
|
"""
|
|
清空所有数据
|
|
|
|
Returns:
|
|
bool: 清空是否成功
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
def save_batch(self, data: Dict[str, Any]) -> bool:
|
|
"""
|
|
批量保存数据
|
|
|
|
Args:
|
|
data: 要保存的数据字典
|
|
|
|
Returns:
|
|
bool: 保存是否成功
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
def load_batch(self, keys: List[str]) -> Dict[str, Any]:
|
|
"""
|
|
批量加载数据
|
|
|
|
Args:
|
|
keys: 要加载的键列表
|
|
|
|
Returns:
|
|
Dict[str, Any]: 加载的数据字典
|
|
"""
|
|
raise NotImplementedError |