Skip to main content

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

关闭缓存。

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