跳到主要内容

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实例。

磁盘

@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, optional - 磁盘缓存的根路径。默认为 ".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"

使用 'autogen_cache' 作为数据库 ID 创建一个 Cosmos DB 缓存实例。

参数:

  • connection_string str, 可选 - 连接到 Cosmos DB 账户的连接字符串。
  • container_id str, 可选 - Cosmos DB 账户的容器 ID。
  • cache_seed Union[str, int], 可选 - 缓存的种子。
  • client - Optional[CosmosClient]: 传入一个已存在的Cosmos DB客户端。

返回:

  • Cache - 一个为 Cosmos DB 配置的缓存实例。

__init__

def __init__(config: Dict[str, Any])

使用给定的配置初始化缓存。

验证配置键并创建缓存实例。

参数:

  • 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 - 如果在上下文中引发了异常,则为回溯信息。

获取

def get(key: str, default: Optional[Any] = None) -> Optional[Any]

从缓存中检索一个项目。

参数:

  • key str - 用于标识缓存中项目的键。
  • default 可选 - 如果未找到键,则返回的默认值。默认为None。

返回:

如果找到与键相关联的值,则返回该值,否则返回默认值。

设置

def set(key: str, value: Any) -> None

在缓存中设置一个项目。

参数:

  • key str - 用于存储项的键。
  • value - 要存储在缓存中的值。

关闭

def close() -> None

关闭缓存。

执行任何必要的清理工作,例如关闭连接或释放资源。