

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Design del wrapper read-through compatibile con le API
<a name="wrapper-design"></a>

Quando si introduce un livello di caching in un database DynamoDB, in genere si desidera evitare modifiche estese al codice lato client. Un modo per farlo è introdurre una classe shim lato client che avvolga il client DynamoDB e presenti la stessa interfaccia ai chiamanti. Tutta la logica di memorizzazione nella cache è inclusa nella classe wrapper ed eseguita in modo implicito e invisibile al chiamante.

Ad esempio, il seguente esempio di codice costruisce un client DynamoDB, ElastiCache un client (Redis OSS) e uno shim. `CacheClient` Lo shim assomiglia al client DynamoDB e lo utilizza internamente per comunicare con `dynamodb_client` il database e lo utilizza `redis_client` per fornire la memorizzazione nella cache:

```
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)
```

Questo approccio non richiede altre modifiche nell'applicazione per introdurre la memorizzazione nella cache.