翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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)
このアプローチでは、キャッシュを導入するためにアプリケーションに他の変更を加える必要はありません。