兼容 API 的直读封装器设计 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

兼容 API 的直读封装器设计

在 DynamoDB 数据库中引入缓存层时,通常需要避免对客户端代码进行大量修改。实现此目的的一种方法是引入一个客户端 shim 类,该类包装 DynamoDB 客户端,并向其调用者提供相同的接口。所有的缓存逻辑都包含在包装器类中,并且对调用者隐式和不可见地执行。

例如,以下代码示例构造了一个 DynamoDB 客户端、一个(Redis OSS)客户端和 ElastiCache 一个 shim。CacheClient填充物看起来像 DynamoDB 客户端,dynamodb_client在内部使用与数据库通信,它使用来redis_client提供缓存:

dynamodb_client = boto3.client("dynamodb") redis_client = Redis(host='hostname', port=6379, decode_responses=True, ssl=True, read_from_replicas=True) cache_client = CacheClient(dynamodb_client, redis_client, ttl=60*60)

这种方法不需要在应用程序中进行任何其他更改即可引入缓存。