API 互換のリードスルーラッパー設計 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

API 互換のリードスルーラッパー設計

DynamoDB データベースにキャッシュレイヤーを導入する場合、通常、クライアント側のコードの大幅な変更を回避する必要があります。これを行う 1 つの方法は、DynamoDB クライアントをラップし、呼び出し元に同じインターフェイスを表示するクライアント側の shim クラスを導入することです。すべてのキャッシュロジックはラッパークラスに含まれ、暗黙的かつ目に見えない方法で発信者に対して実行されます。

たとえば、次のコードサンプルは、DynamoDB クライアント、ElastiCache (Redis OSS) クライアント、および 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)

このアプローチでは、キャッシュを導入するためにアプリケーションに他の変更を加える必要はありません。