Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
API-kompatibles Read-Through-Wrapper-Design
Wenn Sie eine Caching-Ebene in eine DynamoDB-Datenbank einführen, möchten Sie in der Regel umfangreiche clientseitige Codeänderungen vermeiden. Eine Möglichkeit, dies zu tun, besteht darin, eine clientseitige Shim-Klasse einzuführen, die den DynamoDB-Client umschließt und seinen Aufrufern dieselbe Schnittstelle präsentiert. Die gesamte Caching-Logik ist in der Wrapper-Klasse enthalten und wird implizit und für den Aufrufer unsichtbar ausgeführt.
Im folgenden Codebeispiel werden beispielsweise ein DynamoDB-Client, ein ElastiCache (Redis OSS) -Client und ein Shim erstellt. CacheClient
Der Shim sieht aus wie der DynamoDB-Client und verwendet intern den, um mit der Datenbank dynamodb_client
zu kommunizieren, und er verwendet den, redis_client
um das Caching bereitzustellen:
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)
Bei diesem Ansatz sind keine weiteren Änderungen an der Anwendung erforderlich, um das Caching einzuführen.