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
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.