cache.cache
缓存
class Cache(AbstractCache)
一个用于管理缓存配置和实例的包装类。
该类提供了一个统一的接口,用于创建和操作不同类型的缓存(例如 Redis、磁盘)。它抽象了底层缓存实现的细节,提供了缓存操作的方法。
属性:
config
Dict[str, Any] - 包含缓存配置的字典。cache
- 基于提供的配置创建的缓存实例。
redis
@staticmethod
def redis(cache_seed: Union[str, int] = 42,
redis_url: str = "redis://localhost:6379/0") -> "Cache"
创建一个 Redis 缓存实例。
参数:
cache_seed
Union[str, int], 可选 - 缓存的种子。默认为 42。redis_url
str, 可选 - Redis 服务器的 URL。默认为 "redis://localhost:6379/0"。
返回值:
Cache
- 配置为 Redis 的 Cache 实例。
disk
@staticmethod
def disk(cache_seed: Union[str, int] = 42,
cache_path_root: str = ".cache") -> "Cache"
创建一个磁盘缓存实例。
参数:
cache_seed
Union[str, int], 可选 - 缓存的种子。默认为 42。cache_path_root
str, 可选 - 磁盘缓存的根路径。默认为 ".cache"。
返回值:
Cache
- 配置为磁盘缓存的 Cache 实例。
cosmos_db
@staticmethod
def cosmos_db(connection_string: Optional[str] = None,
container_id: Optional[str] = None,
cache_seed: Union[str, int] = 42,
client: Optional[any] = None) -> "Cache"
创建一个 Cosmos DB 缓存实例,数据库 ID 为 'autogen_cache'。
参数:
connection_string
str, 可选 - Cosmos DB 账户的连接字符串。container_id
str, 可选 - Cosmos DB 账户的容器 ID。cache_seed
Union[str, int], 可选 - 缓存的种子。client
- Optional[CosmosClient]: 传入一个现有的 Cosmos DB 客户端。
返回值:
Cache
- 配置为 Cosmos DB 的 Cache 实例。
__init__
def __init__(config: Dict[str, Any])
使用给定的配置初始化 Cache。
验证配置键并创建缓存实例。
参数:
config
Dict[str, Any] - 包含缓存配置的字典。
抛出:
ValueError
- 如果提供了无效的配置键。
__enter__
def __enter__() -> "Cache"
进入与缓存对象相关的运行时上下文。
返回值:
用于在上下文块内使用的缓存实例。
__exit__
def __exit__(exc_type: Optional[Type[BaseException]],
exc_value: Optional[BaseException],
traceback: Optional[TracebackType]) -> None
退出与缓存对象相关的运行时上下文。 清理缓存实例,并处理在上下文中发生的任何异常。
参数:
exc_type
- 如果在上下文中引发了异常,则为异常类型。exc_value
- 如果在上下文中引发了异常,则为异常值。traceback
- 如果在上下文中引发了异常,则为回溯信息。
get
def get(key: str, default: Optional[Any] = None) -> Optional[Any]
从缓存中获取一个项目。
参数:
key
str - 用于标识缓存中项目的键。default
optional - 如果未找到键,则返回的默认值。默认为 None。
返回值:
如果找到键,则返回与键关联的值,否则返回默认值。
set
def set(key: str, value: Any) -> None
在缓存中设置一个项目。
参数:
key
str - 要存储项目的键。value
- 要存储在缓存中的值。
close
def close() -> None
关闭缓存。
执行任何必要的清理操作,例如关闭连接或释放资源。