

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

# Come ElastiCache funziona
<a name="WhatIs.corecomponents"></a>

Qui puoi trovare una panoramica dei componenti principali di una ElastiCache distribuzione.

## Motori di cache e caching
<a name="WhatIs.corecomponents.cache"></a>

Una cache è un archivio dati in memoria che è possibile utilizzare per archiviare i dati memorizzati nella cache. In genere, l'applicazione memorizza nella cache i dati a cui si accede di frequente per ottimizzare i tempi di risposta. ElastiCache offre due opzioni di implementazione: cache serverless e cluster basati su nodi. Per informazioni, consulta [Scelta tra le opzioni di implementazione](WhatIs.deployment.md). 

**Nota**  
Amazon ElastiCache funziona con i motori OSS Valkey, Memcached e Redis. Se non sei certo di quale motore utilizzare, consulta [Confronto tra cluster Valkey, Memcached e Redis OSS basati su nodi](SelectEngine.md) in questa guida.

**Topics**
+ [Come ElastiCache funziona](#WhatIs.HowELCworks)
+ [Prezzi delle dimensioni](#WhatIs.ELCpricing)
+ [ElastiCache backup](#WhatIs.corecomponents.backups-redis)

### Come ElastiCache funziona
<a name="WhatIs.HowELCworks"></a>

**ElastiCache Serverless**

ElastiCache Serverless consente di creare una cache senza preoccuparsi della pianificazione della capacità, della gestione dell'hardware o della progettazione del cluster. È sufficiente fornire un nome per la cache e ricevere un singolo endpoint che è possibile configurare nel client Valkey, Memcached, Redis OSS per iniziare ad accedere alla cache.

**Nota**  
ElastiCache Serverless esegue Valkey, Memcached o Redis OSS in modalità cluster ed è compatibile solo con i client che supportano TLS. 

**Vantaggi principali**


+ **Nessuna pianificazione della capacità:** ElastiCache Serverless elimina la necessità di pianificare la capacità. ElastiCache Serverless monitora continuamente la memoria, l'elaborazione e l'utilizzo della larghezza di banda di rete della cache e scala sia verticalmente che orizzontalmente. Consente di aumentare le dimensioni di un nodo di cache, avviando parallelamente un'operazione di scalabilità orizzontale per garantire che la cache possa dimensionarsi per soddisfare i requisiti dell'applicazione in ogni momento. 
+ **Ray-per-use:** Con ElastiCache Serverless, paghi per i dati archiviati e di calcolo utilizzati dal carico di lavoro sulla cache. Per informazioni, consulta [Prezzi delle dimensioni](#WhatIs.ELCpricing).
+ **Alta disponibilità:** ElastiCache Serverless replica automaticamente i dati su più zone di disponibilità (AZ) per un'elevata disponibilità. Monitora automaticamente i nodi di cache sottostanti e li sostituisce in caso di errore. Offre uno SLA con disponibilità del 99,99% per ogni cache. 
+ **Aggiornamenti automatici del software:** ElastiCache Serverless aggiorna automaticamente la cache all'ultima versione del software secondario e all'ultima versione del software con patch senza alcun impatto sulla disponibilità dell'applicazione. Quando sarà disponibile una nuova versione principale, ti ElastiCache invierà una notifica. 
+ **Sicurezza:** serverless esegue sempre la crittografia dei dati in transito e a riposo. È possibile utilizzare una chiave gestita dal servizio o la chiave gestita dal cliente per crittografare i dati a riposo. 

Il diagramma seguente illustra come funziona ElastiCache Serverless.

![\[Un diagramma del funzionamento della cache ElastiCache Serverless, dalle zone di disponibilità al VPC del cliente e quindi al VPC del servizio.\]](http://docs.aws.amazon.com/it_it/AmazonElastiCache/latest/dg/images/ELC-serverless-works1.png)


Quando crei una nuova cache serverless, ElastiCache crea un endpoint Virtual Private Cloud (VPC) nelle sottoreti di tua scelta nel tuo VPC. L'applicazione può connettersi alla cache tramite questi endpoint VPC. 

Con ElastiCache Serverless ricevi un singolo endpoint DNS a cui si connette l'applicazione. Quando richiedi una nuova connessione all'endpoint, ElastiCache Serverless gestisce tutte le connessioni alla cache tramite un livello proxy. Il livello del proxy aiuta a ridurre la complessità della configurazione del client perché il client non ha bisogno di individuare nuovamente la topologia del cluster in caso di modifiche al cluster sottostante. Il livello del proxy è un set di nodi proxy che gestiscono le connessioni utilizzando un Network Load Balancer. 

Quando l'applicazione crea una nuova connessione alla cache, la richiesta viene inviata a un nodo proxy dal Network Load Balancer. Quando l'applicazione esegue i comandi della cache, il nodo proxy connesso all'applicazione elabora le richieste su un nodo di cache. Il livello proxy astrae la topologia e i nodi del cluster dal client. Ciò consente di ElastiCache bilanciare in modo intelligente il carico, scalare e aggiungere nuovi nodi di cache, sostituire i nodi di cache in caso di guasto e aggiornare il software sui nodi di cache, il tutto senza influire sulla disponibilità dell'applicazione o dover reimpostare le connessioni. 

**Cluster basati su nodi**

È possibile creare un ElastiCache cluster basato su nodi scegliendo una famiglia di nodi di cache, la dimensione e il numero di nodi per il cluster. La creazione di un cluster basato su nodi offre un controllo più preciso e consente di scegliere il numero di shard nella cache e il numero di nodi (primari e di replica) in ogni shard. È possibile scegliere di utilizzare Valkey o Redis OSS in modalità cluster creando un cluster con più shard o in modalità non cluster con un singolo shard. 

**Vantaggi principali**
+ **Crea un cluster basato su nodi:** con ElastiCache, puoi creare un cluster basato su nodi e scegliere dove posizionare i nodi di cache. Ad esempio, se un'applicazione compromette l'alta disponibilità con una bassa latenza, puoi scegliere di implementare i nodi di cache in un'unica zona di disponibilità. In alternativa, puoi creare un cluster basato su nodi con più nodi per ottenere un'elevata disponibilità. AZs 
+ **Controllo granulare: quando si crea un cluster basato su nodi, si ha un maggiore controllo sull'ottimizzazione** delle impostazioni della cache. Ad esempio, è possibile utilizzare o configurare il motore di cache. [Parametri Valkey e Redis OSS](ParameterGroups.Engine.md#ParameterGroups.Redis) [Parametri Memcached specifici](ParameterGroups.Engine.md#ParameterGroups.Memcached)
+ **Dimensionamento verticale e orizzontale:** puoi scegliere di dimensionare manualmente il cluster aumentando o diminuendo la dimensione del nodo di cache quando necessario. Puoi anche dimensionare orizzontalmente aggiungendo nuove partizioni o altre repliche alle partizioni. Puoi anche utilizzare la funzionalità Auto-Scaling per configurare il ridimensionamento in base a una pianificazione o il ridimensionamento in base a metriche come l'utilizzo della CPU e della memoria nella cache. 

Il diagramma seguente illustra come funzionano i cluster basati su nodi. ElastiCache 

![\[Un diagramma del funzionamento dei cluster ElastiCache basati su nodi, dalle zone di disponibilità al VPC del cliente e quindi ai nodi di cache gestiti. ElastiCache\]](http://docs.aws.amazon.com/it_it/AmazonElastiCache/latest/dg/images/ELC-serverless-works2.png)


### Prezzi delle dimensioni
<a name="WhatIs.ELCpricing"></a>

È possibile eseguire la distribuzione in due opzioni di distribuzione ElastiCache . Quando si implementa ElastiCache Serverless, si paga in base all'utilizzo dei dati archiviati in GB all'ora e per l'elaborazione in unità di elaborazione (ECPU). ElastiCache Quando si crea un cluster basato su nodi, si paga per ora per l'utilizzo del nodo di cache. Per i dettagli dei prezzi, consulta [questa pagina](https://aws.amazon.com/elasticache/pricing/).

**Archiviazione di dati**

Paghi per i dati archiviati in ElastiCache Serverless e fatturati in gigabyte/ora (GB-h). ElastiCache Serverless monitora continuamente i dati archiviati nella cache, campionandoli più volte al minuto, e calcola una media oraria per determinare l'utilizzo dell'archiviazione dei dati della cache in GB-h. Ogni cache ElastiCache Serverless viene misurata per un minimo di 1 GB di dati archiviati.

**ElastiCache Unità di elaborazione () ECPUs**

Paghi per le richieste eseguite dalla tua applicazione su ElastiCache Serverless in ElastiCache Processing Units (ECPUs), un'unità che include sia il tempo di vCPU che i dati trasferiti. 
+ Le operazioni di lettura e scrittura semplici richiedono 1 ECPU per ogni kilobyte (KB) di dati trasferiti. Ad esempio, un comando GET che trasferisce fino a 1 KB di dati consuma 1 ECPU. Una richiesta SET che trasferisce 3,2 KB di dati consumerà 3,2. ECPUs
+ Con Valkey e Redis OSS, i comandi che consumano più tempo vCPU e trasferiscono più dati consumano in ECPUs base alla più alta delle due dimensioni. Ad esempio, se l'applicazione utilizza il comando HMGET, consuma 3 volte il tempo di vCPU come SET/GET comando semplice e trasferisce 3,2 KB di dati, consumerà 3,2 ECPU. In alternativa, se trasferisce solo 2 KB di dati, ne consumerà 3. ECPUs 
+ Con Valkey e Redis OSS, i comandi che richiedono un tempo di vCPU aggiuntivo consumeranno proporzionalmente di più. ECPUs Ad esempio, se l'applicazione utilizza il [comando Valkey o Redis OSS HMGET](https://valkey.io/commands/hmget/) e consuma 3 volte il tempo di vCPU come SET/GET comando semplice, ne consumerà 3. ECPUs 
+ Con Memcached, i comandi che operano su più elementi consumeranno proporzionalmente di più. ECPUs Ad esempio, se l'applicazione esegue un multiget su 3 elementi, ne consumerà 3. ECPUs
+ Con Memcached, i comandi che operano su più elementi e trasferiscono più dati consumano ECPUs in base alla dimensione superiore delle due. Ad esempio, se l'applicazione utilizza il comando GET, recupera 3 elementi e trasferisce 3,2 KB di dati, consuma 3,2 ECPU. In alternativa, se trasferisce solo 2 KB di dati, ne consumerà 3. ECPUs

ElastiCache Serverless emette una nuova metrica chiamata `ElastiCacheProcessingUnits` che ti aiuta a comprendere il ECPUs consumo del tuo carico di lavoro. 

**Ore per nodo**

Puoi creare un cluster basato su nodi scegliendo la famiglia di EC2 nodi, la dimensione, il numero di nodi e il posizionamento tra le zone di disponibilità. Quando si crea un cluster basato su nodi, si paga all'ora per ogni nodo di cache. 

### ElastiCache backup
<a name="WhatIs.corecomponents.backups-redis"></a>

Un *backup* è una point-in-time copia di una cache serverless o di un cluster basato su nodi Valkey o Redis OSS. ElastiCache consente di eseguire un backup dei dati in qualsiasi momento o di configurare backup automatici. I backup possono essere utilizzati per ripristinare una cache esistente o per inizializzarne una nuova. I backup sono costituiti da tutti i dati di una cache e da alcuni metadati. Per ulteriori informazioni, consulta . [Snapshot e ripristino](backups.md).

# Scelta tra le opzioni di implementazione
<a name="WhatIs.deployment"></a>

Amazon ElastiCache offre due opzioni di distribuzione:
+ Cache serverless
+ Cluster basati su nodi

Per un elenco dei comandi supportati per entrambi, vedere. [Comandi Valkey, Memcached e Redis OSS supportati e limitati](SupportedCommands.md)

**Cache serverless**

Amazon ElastiCache Serverless semplifica la creazione di cache e si ridimensiona istantaneamente per supportare le applicazioni più esigenti dei clienti. Con ElastiCache Serverless, puoi creare una cache altamente disponibile e scalabile in meno di un minuto, eliminando la necessità di fornire, pianificare e gestire la capacità del cluster. ElastiCache Serverless archivia automaticamente i dati in modo ridondante su tre zone di disponibilità e fornisce un Service Level Agreement (SLA) di disponibilità del 99,99%. I backup da cluster basati su nodi Valkey o Redis OSS possono essere ripristinati in una configurazione serverless.

**Cluster basati su nodi**

Se hai bisogno di un controllo granulare sul tuo cluster Valkey, Memcached o Redis OSS, puoi creare un cluster basato su nodi con. ElastiCache Scegli il tipo di nodo, il numero di nodi e il posizionamento dei nodi tra le zone di disponibilità per il tuo cluster.AWS Essendo ElastiCache un servizio completamente gestito, aiuta a gestire il provisioning dell'hardware, il monitoraggio, la sostituzione dei nodi e l'applicazione di patch software per il cluster. I cluster basati su nodi possono essere progettati per fornire uno SLA di disponibilità fino al 99,99%. I backup dalle cache serverless di Valkey o Redis OSS possono essere ripristinati in un cluster basato su nodi.

**Scelta tra le opzioni di implementazione**

Scegli la cache serverless se:
+ Stai creando una cache per carichi di lavoro nuovi o difficili da prevedere.
+ Hai un traffico applicativo imprevedibile.
+ desideri iniziare a usare una cache nel modo più semplice.

Crea il tuo cluster basato su nodi se:
+ Stai già utilizzando ElastiCache Serverless e desideri un controllo più preciso sul tipo di nodo su cui è in esecuzione Valkey, Memcached o Redis OSS, sul numero di nodi e sul posizionamento di tali nodi. 
+ Ti aspetti che il traffico delle tue applicazioni sia relativamente prevedibile e desideri un controllo granulare su prestazioni, disponibilità e costi. 
+ puoi prevedere i requisiti di capacità per controllare i costi.

## Confronto tra caching senza server e cluster basati su nodi
<a name="WhatIs.deployment.comparing"></a>


| Funzionalità | Cache serverless | Cluster basati su nodi | 
| --- | --- | --- | 
|  Configurazione della cache  |  Crea una cache con un solo nome in meno di un minuto  |  Fornisce un controllo granulare sulla progettazione dei cluster. L'utente può scegliere il tipo di nodo, il numero di nodi e il posizionamento tra le zone di disponibilitàAWS  | 
|  Versione supportata ElastiCache   |  Valkey 7.2 e versioni successive, Redis OSS versione 7.1 e successive, Memcached 1.6.21 e versioni successive  |  Valkey 7.2 e versioni successive, Redis OSS versione 4.0 e successive, Memcached 1.4 e versioni successive  | 
|  Modalità cluster (Valkey e Redis OSS)  |  Fa funzionare i motori solo in`cluster mode enabled`. I client devono supportare `cluster mode enabled` la connessione a ElastiCache Serverless.  |  Può essere configurato per funzionare in modalità cluster abilitata o disattivata in modalità cluster.  | 
|  Dimensionamento  |  Ridimensiona automaticamente i motori sia verticalmente che orizzontalmente senza alcuna gestione della capacità.  |  Fornisce il controllo sulla scalabilità e richiede al contempo il monitoraggio per assicurarsi che la capacità attuale soddisfi adeguatamente la domanda. Per Valkey e Redis OSS, puoi scegliere di scalare verticalmente aumentando o diminuendo la dimensione del nodo di cache quando necessario. Puoi anche scalare orizzontalmente, aggiungendo nuovi shard o aggiungendo altre repliche ai tuoi shard. Questa funzionalità non è disponibile per Memcached. Con la funzione Auto-Scaling puoi anche configurare il ridimensionamento in base a una pianificazione o in base a metriche come l'utilizzo della CPU e della memoria nella cache.  | 
|  Connessione client  |  I client si connettono a un singolo endpoint. Ciò consente di modificare la topologia del nodo di cache sottostante (scalabilità, sostituzioni e aggiornamenti) senza disconnettere il client.  |  I client si connettono a ogni singolo nodo di cache. Se un nodo viene sostituito, il client riscopre la topologia del cluster e ristabilisce le connessioni.  | 
|  Configurabilità  |  Nessuna configurazione dettagliata disponibile. I clienti possono configurare le impostazioni di base, tra cui le sottoreti che possono accedere alla cache, l'attivazione o la disattivazione dei backup automatici e i limiti massimi di utilizzo della cache.   |  I cluster basati su nodi offrono opzioni di configurazione dettagliate. I clienti possono utilizzare gruppi di parametri per un controllo granulare. Per una tabella di questi valori di parametro per tipo di nodo, consulta [Parametri specifici del motore](ParameterGroups.Engine.md).  | 
|  Multi-AZ  |  I dati vengono replicati in modo asincrono su più zone di disponibilità per una maggiore disponibilità e una migliore latenza di lettura.  |  Offre la possibilità di creare il cluster in una singola zona di disponibilità o su più zone di disponibilità (). AZs Quando si utilizza Valkey o Redis OSS, fornisce ai cluster Multi-AZ dati replicati in modo asincrono su più zone di disponibilità per una maggiore disponibilità e una migliore latenza di lettura.  | 
|  Crittografia dei dati a riposo  |  Sempre abilitato. I clienti possono utilizzare una chiave Chiave gestita da AWS o una chiave gestita dal cliente AWS KMS.  |  Opzione per abilitare o disabilitare la crittografia a riposo. Se abilitata, i clienti possono utilizzare una chiave Chiave gestita da AWS o una chiave gestita dal cliente AWS KMS.   | 
|  Crittografia in transito (TLS)  |  Sempre abilitata. I client devono supportare la connettività TLS.   |  Opzione per abilitare o disabilitare.  | 
|  Backup  |  Supporta backup automatici e manuali delle cache senza impatto sulle prestazioni. I backup Valkey e Redis OSS sono intercompatibili e possono essere ripristinati in una cache ElastiCache Serverless o in un cluster basato su nodi.  |  Supporta backup automatici e manuali per Valkey e Redis OSS. I cluster possono subire un impatto sulle prestazioni a seconda della memoria riservata disponibile. Per ulteriori informazioni, consulta [Gestione della memoria riservata per Valkey e Redis OSS](redis-memory-management.md). I backup Valkey e Redis OSS sono intercompatibili e possono essere ripristinati in una cache ElastiCache Serverless o in un cluster basato su nodi.  | 
|  Monitoraggio  |  Supporta le metriche a livello di cache, tra cui la frequenza di accesso alla cache, la percentuale di errori della cache, la dimensione dei dati e il ECPUs consumo. ElastiCache Serverless invia eventi indicando EventBridge quando si verificano eventi significativi nella cache. Puoi scegliere di monitorare, importare, trasformare e intervenire sugli ElastiCache eventi utilizzando Amazon EventBridge. Per ulteriori informazioni, consulta [Eventi di cache serverless](serverless-metrics-events-redis.md#serverless-events).  |   ElastiCache I cluster basati su nodi emettono parametri a ogni livello di nodo, inclusi parametri a livello di host e parametri di cache. I cluster basati su nodi emettono notifiche SNS per eventi significativi. Consulta [Parametri per Memcached](CacheMetrics.Memcached.md) e [Metriche per Valkey e Redis OSS](CacheMetrics.Redis.md).  | 
|  Disponibilità  |  [Contratto sul livello di servizio (SLA) di disponibilità del 99,99%](https://aws.amazon.com/elasticache/sla/)  |  I cluster basati su nodi possono essere progettati per raggiungere un [accordo sul livello di servizio (SLA) di disponibilità fino al 99,99%, a seconda della](https://aws.amazon.com/elasticache/sla/) configurazione.  | 
|  Aggiornamenti e patch del software  |  Aggiorna automaticamente il software di cache all'ultima versione secondaria e alla patch più recente, senza impatto sull'applicazione. I clienti ricevono una notifica per gli aggiornamenti delle versioni principali e possono eseguire l'aggiornamento alla versione principale più recente quando lo desiderano.  |  I cluster basati su nodi offrono un servizio self-service abilitato al cliente per gli aggiornamenti delle versioni minori e corredati di patch, nonché per gli aggiornamenti delle versioni principali. Gli aggiornamenti gestiti vengono applicati automaticamente durante le finestre di manutenzione definite dal cliente. I clienti possono anche scegliere di applicare un aggiornamento di una versione secondaria o di una patch su richiesta.   | 
|  Archivio dati globale   |  Non supportata   |  Supporta Global Data Store, che consente la replica interregionale con scritture su una singola regione e letture multiregionali  | 
|  Suddivisione dei dati su più livelli  |  Non supportata  |  I cluster creati utilizzando nodi della famiglia r6gd hanno i dati suddivisi su più livelli tra la memoria e lo storage SSD locale (unità a stato solido). Il data tiering offre un'opzione in termini di rapporto prezzo/prestazioni per i carichi di lavoro Valkey e Redis OSS utilizzando unità a stato solido () a basso costo in ogni nodo del cluster, oltre all'archiviazione dei dati in memoria. SSDs  | 
|  Modello tariffario  |  Pay-per-use, in base ai dati archiviati in GB all'ora e alle richieste nelle unità di elaborazione (ECPU). ElastiCache Per i dettagli dei prezzi, consulta [questa pagina](https://aws.amazon.com/elasticache/pricing/).  |  Pay-per-hour, in base all'utilizzo del nodo cache. Per i dettagli dei prezzi, consulta [questa pagina](https://aws.amazon.com/elasticache/pricing/).  | 

Argomenti correlati:
+ [Creazione e gestione di un cluster basato su nodi ElastiCacheCreazione e gestione di un cluster basato su nodi ElastiCache ](designing-elasticache-cluster.md)

# ElastiCache Risorse Amazon per utenti alle prime armi
<a name="WhatIs.FirstTimeUser"></a>

Si consiglia agli utenti alle prime armi di iniziare a leggere le seguenti sezioni e di farvi riferimento ogni volta che è necessario.
+ **Aspetti salienti del servizio e prezzi**: la [pagina dei dettagli del prodotto](https://aws.amazon.com/elasticache/) fornisce una panoramica generale del prodotto ElastiCache, dei punti salienti del servizio e dei prezzi.
+ **ElastiCache video** — La [ElastiCache Video](Tutorials.md#tutorial-videos) sezione contiene video che ti presentano Amazon ElastiCache. I video illustrano casi d'uso comuni ElastiCache e dimostrano come utilizzarli per ElastiCache ridurre la latenza e migliorare la velocità effettiva delle applicazioni.
+ **Guida introduttiva**: la [Guida introduttiva ad Amazon ElastiCache](GettingStarted.md) sezione include informazioni sulla creazione di una cache. Include anche come autorizzare l'accesso alla cache, connettersi a un nodo di cache ed eliminare la cache.
+ **Prestazioni su larga scala**: il ElastiCache white paper [Performance at scale with Amazon](https://d0.awsstatic.com/whitepapers/performance-at-scale-with-amazon-elasticache.pdf) affronta le strategie di caching che aiutano la tua applicazione a funzionare bene su larga scala.

Al termine delle sezioni precedenti, leggi queste sezioni:
+ [Scelta delle dimensioni dei nodi](CacheNodes.SelectSize.md)

  Vuoi che i nodi siano abbastanza grandi da ospitare tutti i dati da memorizzare nella cache. Allo stesso tempo, non vuoi pagare per cache non necessaria. Puoi utilizzare questo argomento per scegliere la dimensione ideale dei nodi.
+ [ElastiCache migliori pratiche e strategie di caching](BestPractices.md)

  Identificare e risolvere problemi che possono influire sull'efficienza del cluster.

Se desideri utilizzare il AWS Command Line Interface(AWS CLI), puoi utilizzare questi documenti per aiutarti a iniziare:
+ [AWS Command Line Interface documentazione](https://docs.aws.amazon.com/cli/)

  Questa sezione fornisce informazioni su come scaricare AWS CLI, far AWS CLI funzionare il sistema e fornire le AWS credenziali.
+ [AWS CLI documentazione per ElastiCache](https://docs.aws.amazon.com/cli/latest/reference/elasticache/index.html)

  Questo documento separato copre tutti i ElastiCache comandi AWS CLI for, inclusi la sintassi e gli esempi.

È possibile scrivere programmi applicativi per utilizzare l' ElastiCache API con una varietà di linguaggi di programmazione popolari. Ecco alcune risorse:
+ [Strumenti per Amazon Web Services](https://aws.amazon.com/tools/)

  Amazon Web Services fornisce diversi kit di sviluppo software (SDKs) con supporto per ElastiCache. Puoi programmare per ElastiCache utilizzare Java, .NET, PHP, Ruby e altri linguaggi. Questi SDKs possono semplificare notevolmente lo sviluppo delle applicazioni in quanto formattano le richieste ElastiCache, analizzano le risposte e forniscono la logica dei tentativi e la gestione degli errori. 
+ [Utilizzo dell' ElastiCache API](ProgrammingGuide.md)

  Se non desideri utilizzare il AWS SDKs, puoi interagire ElastiCache direttamente con l'API Query. In questa sezione puoi trovare suggerimenti per risolvere i problemi e informazioni su come creare e autenticare richieste e gestire risposte. 
+ [Riferimento alle ElastiCache API Amazon](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/)

  Questo documento separato copre tutte le operazioni ElastiCache API, inclusi la sintassi e gli esempi.

# AWS Regioni e zone di disponibilità
<a name="WhatIs.AZs"></a>

Le risorse di cloud computing Amazon sono ospitate in strutture dei data center disponibili in diverse aree nel mondo, ad esempio Nord America, Europa o Asia. Ogni sede del data center è denominata AWS Regione.

Ogni AWS regione contiene più località distinte chiamate zone di disponibilità o AZs. Ogni zona di disponibilità è progettata per rimanere isolata dai guasti che si verificano in altre zone di disponibilità. Ciascuna è progettata per fornire connettività di rete economica e a bassa latenza ad altre zone di disponibilità nella stessa regione. AWS Avviando istanze in zone di disponibilità separate, potrai proteggere le tue applicazioni dai guasti di una singola posizione. Per ulteriori informazioni, consulta [Scelta di regioni e zone di disponibilità](RegionsAndAZs.md).

Grazie a un'opzione nota come implementazione Multi-AZ, è possibile creare il cluster in diverse zone di disponibilità. Quando scegli questa opzione, Amazon effettua automaticamente il provisioning e la gestione di un'istanza di nodo in standby secondaria situata in una zona di disponibilità diversa. L'istanza del nodo primario viene replicata in modo asincrono tra le zone di disponibilità nell'istanza secondaria. Questo approccio consente di fornire supporto per la ridondanza dei dati e il failover, eliminare i I/O blocchi e ridurre al minimo i picchi di latenza durante i backup di sistema. Per ulteriori informazioni, consulta [Riduzione al minimo dei tempi](AutoFailover.md) di inattività in Valkey e Redis OSS con Multi-AZ. ElastiCache 

# Casi ElastiCache d'uso comuni e come ElastiCache può essere utile
<a name="elasticache-use-cases"></a>

Che si tratti di fornire le ultime notizie del giorno, una classifica dei primi 10 punteggi di gioco, un catalogo di prodotti o che si tratti di vendere biglietti per un evento, la velocità è alla base di ogni operazione. Il successo del tuo sito web e del tuo business è influenzato significativamente dalla velocità con cui si distribuiscono i contenuti. 

Nell'articolo "[For Impatient Web Users, an Eye Blink Is Just Too Long to Wait (Per gli utenti del web impazienti, attendere un battito di ciglia è troppo)](http://www.nytimes.com/2012/03/01/technology/impatient-web-users-flee-slow-loading-sites.html?pagewanted=all&_r=0)”, il New York Times ha stimato che gli utenti possono registrare una differenza di 250 millisecondi (1/4 di secondo) tra i siti concorrenti. Gli utenti tendono a scartare il sito più lento a favore di quello più veloce. Test effettuati da Amazon, secondo quanto descritto in [How Webpage Load Time Is Related to Visitor Loss (Come il tempo di caricamento di una pagina Web è collegato alla perdita di visitatori)](http://pearanalytics.com/blog/2009/how-webpage-load-time-related-to-visitor-loss/), hanno rivelato che ogni 100 ms in più (1/10 di secondo) impiegati nel caricamento della pagina, le vendite subiscono una flessione dell'1 percento. 

Se qualcuno desidera dei dati, è possibile fornirli in modo molto più veloce se sono memorizzati nella cache. Che si tratti di una pagina web o di un report alla base di decisioni aziendali. La tua azienda può permettersi di non memorizzare in cache le pagine web in modo da distribuirle con la minore latenza possibile?

Intuitivamente, potrebbe essere piuttosto scontato pensare di memorizzare in cache gli elementi richiesti con maggiore frequenza. Invece, perché non memorizzare in cache gli elementi richiesti con minore frequenza? Anche le chiamate API remote o le query di database meglio ottimizzate sono notevolmente più lente rispetto a quando si richiama una chiave flat da una cache in memoria. I tempi *notevolmente più lenti* spingono i clienti ad andare altrove.

I seguenti esempi illustrano alcuni dei modi in cui l'utilizzo ElastiCache può migliorare le prestazioni complessive dell'applicazione.

**Topics**
+ [Datastore in memoria](#elasticache-use-cases-data-store)
+ [Classifiche di gioco](#elasticache-for-redis-use-cases-gaming)
+ [Messaggistica (Pub/Sub)](#elasticache-for-redis-use-cases-messaging)
+ [Dati di raccomandazione (hash)](#elasticache-for-redis-use-cases-recommendations)
+ [Caching semantico per applicazioni di intelligenza artificiale generativa](#elasticache-for-redis-use-cases-semantic-caching)
+ [ElastiCache Testimonianze dei clienti](#elasticache-use-cases-testimonials)

## Datastore in memoria
<a name="elasticache-use-cases-data-store"></a>

Lo scopo principale di uno store chiave-valore in memoria è fornire accesso ultrarapido (latenza in millisecondi) e a costo zero alle copie di dati. La maggior parte dei datastore hanno aree di dati a cui si accede di frequente ma che vengono aggiornate raramente. Inoltre, l'interrogazione di un database è sempre più lenta e più costosa dell'individuazione di una chiave in una cache della coppia chiave-valore. Alcune query di database sono particolarmente costose da eseguire. Ad esempio, le query che implicano unioni di più tabelle o le query con calcoli complessi. Memorizzando nella cache tali risultati delle query, si paga il prezzo della query una sola volta. Quindi è possibile richiamare velocemente i dati più volte senza dover rieseguire la query.

### Cosa devo memorizzare nella cache?
<a name="elasticache-use-cases-data-store-what-to-cache"></a>

Quando si decide quali dati memorizzare nella cache, tenere presenti i seguenti fattori:

**Velocità e spese** – È sempre più lento e costoso ottenere dati da un database che da una cache. Alcune query del database sono per natura più lente e più costose di altre. Ad esempio, le query che eseguono unioni su più tabelle sono molto più lente e più costose delle semplici query a tabella unica. Se l'acquisizione di dati interessanti richiede una query più lenta e più costosa, è indicata per il caching. Se l'acquisizione di dati richiede una query semplice e relativamente rapida, può essere idonea per il caching ma è necessario valutare altri fattori.

**Dati e modello di accesso**— Determinare cosa memorizzare nella cache comporta anche la comprensione dei dati stessi e dei relativi modelli di accesso. Ad esempio, non ha senso memorizzare nella cache i dati sottoposti a continue modifiche o a cui si accede raramente. Affinché la memorizzazione nella cache fornisca vantaggi reali, i dati devono essere relativamente statici e l'accesso a essi deve essere frequente. Un esempio è un profilo personale su un sito di social media. D’altra parte, non è necessario memorizzare nella cache se questa operazione non fornisce vantaggi economici e non migliora la velocità. Ad esempio, non ha senso memorizzare in cache le pagine web che restituiscono risultati di ricerca, perché le query e i risultati sono di solito univoci.

**Obsolescenza** – Per definizione, i dati memorizzati nella cache sono dati obsoleti. Anche se in determinate circostanze non sono obsoleti, dovrebbero sempre essere considerati e trattati come obsoleti. Per dire se i dati siano candidati al caching, devi stabilire la tolleranza dell'applicazione per i dati obsoleti. 

L'applicazione potrebbe essere in grado di tollerare i dati obsoleti in un dato contesto, ma non in un altro. Supponi, ad esempio, che il sito fornisca un prezzo delle azioni quotato in borsa. I clienti potrebbero accettare una certa obsolescenza con una dichiarazione di non responsabilità secondo la quale i prezzi potrebbero essere *n* minuti in ritardo. Tuttavia, quando si offre il prezzo per lo stesso stock a un broker che effettua una vendita o un acquisto, sono necessari i dati in tempo reale.

Prendi in considerazione di memorizzare nella cache i dati in presenza di una delle seguenti condizioni:
+ L'acquisizione dei dati è lenta o costosa se confrontata con il recupero dalla cache.
+ Gli utenti accedono spesso ai dati.
+ I dati rimangono relativamente gli stessi, o se cambiano rapidamente l’obsolescenza non è un grosso problema.

Per ulteriori informazioni, consulta [Strategie di caching per Memcached](Strategies.md)

## Classifiche di gioco
<a name="elasticache-for-redis-use-cases-gaming"></a>

Con i set ordinati Valkey o Redis OSS puoi spostare la complessità computazionale delle classifici dall'applicazione al cluster.

Le classifiche, ad esempio i primi 10 punteggi di una partita, sono complessi da un punto di vista computazionale. Ciò è particolarmente vero quando c'è un gran numero di giocatori concorrenti e punteggi che cambiano continuamente. I set ordinati Valkey e Redis OSS garantiscono sia l'unicità che l'ordine degli elementi. Con i set ordinati, ogni volta che un nuovo elemento viene aggiunto al set ordinato, questo viene riclassificato in tempo reale. Viene quindi aggiunto al set nel corretto ordine numerico. 

Nel diagramma seguente, puoi vedere come funziona una classifica di gioco. ElastiCache 

![\[\]](http://docs.aws.amazon.com/it_it/AmazonElastiCache/latest/dg/images/ElastiCache-Redis-Gaming.png)


**Example Classificazione OSS Valkey o Redis**  
In questo esempio, quattro giocatori e i relativi punteggi vengono inseriti in un elenco ordinato tramite `ZADD`. Il comando `ZREVRANGEBYSCORE` elenca i giocatori in base al punteggio, dal più alto al più basso. Quindi, `ZADD` viene utilizzato per aggiornare il punteggio di June sostituendo la voce esistente. Infine `ZREVRANGEBYSCORE` elenca i giocatori in base al punteggio, dal più alto al più basso. L’elenco mostra che June è salita di posizione nella classifica.  

```
ZADD leaderboard 132 Robert
ZADD leaderboard 231 Sandra
ZADD leaderboard 32 June
ZADD leaderboard 381 Adam
			
ZREVRANGEBYSCORE leaderboard +inf -inf
1) Adam
2) Sandra
3) Robert
4) June

ZADD leaderboard 232 June

ZREVRANGEBYSCORE leaderboard +inf -inf
1) Adam
2) June
3) Sandra
4) Robert
```
Il comando seguente comunica a June qual è il suo posto nella classifica di tutti i giocatori. Poiché la classifica è basata su zero, *ZREVRANK* restituisce un 1 per June, che si trova in seconda posizione.  

```
ZREVRANK leaderboard June 
1
```

Per ulteriori informazioni, consulta la documentazione di [Valkey](https://valkey.io/topics/sorted-sets/) sui set ordinati.

## Messaggistica (Pub/Sub)
<a name="elasticache-for-redis-use-cases-messaging"></a>

Quando invii un messaggio e-mail, lo invii a uno o più destinatari specificati. Nel paradigma pub/sub di Valkey e Redis OSS, si invia un messaggio a un canale specifico senza sapere chi, se qualcuno, lo riceve. Le persone che ricevono il messaggio sono quelle che hanno effettuato la sottoscrizione al canale. Ad esempio, supponiamo che tu voglia effettuare la sottoscrizione al canale *news.sports.golf*: Tu e tutti gli iscritti al canale *news.sports.golf* ricevono tutti i messaggi pubblicati su *news.sports.golf*.

La funzionalità Pub/sub non ha alcuna relazione con lo spazio chiave. Perciò, non interferisce a nessun livello. Nel diagramma seguente, è possibile trovare un'illustrazione della ElastiCache messaggistica con Valkey e Redis OSS.

![\[\]](http://docs.aws.amazon.com/it_it/AmazonElastiCache/latest/dg/images/ElastiCache-Redis-PubSub.png)


### Sottoscrizione in corso
<a name="elasticache-use-cases-messaging-subscribing"></a>

Per ricevere messaggi su un canale, effettua la sottoscrizione al canale. Puoi effettuare la sottoscrizione al canale, a più canali specificati o a tutti i canali che corrispondono a un modello. Per annullare una sottoscrizione, annulli la sottoscrizione dal canale specificato al momento dell’iscrizione. In alternativa, se la sottoscrizione è stata effettuata utilizzando la corrispondenza dei modelli, la si annulla utilizzando lo stesso modello utilizzato in precedenza.

**Example – Effettuare una sottoscrizione a un singolo canale**  
Per effettuare una sottoscrizione a un singolo canale, utilizza il comando UNSUBSCRIBE specificando il canale a cui hai effettuato la sottoscrizione. Nell'esempio seguente, un cliente effettua la sottoscrizione al canale *news.sports.golf*.  

```
SUBSCRIBE news.sports.golf
```
Trascorso un certo periodo, il cliente annulla la sottoscrizione al canale utilizzando il comando UNSUBSCRIBE specificando il canale dal quale annullare la sottoscrizione.  

```
UNSUBSCRIBE news.sports.golf
```

**Example – Sottoscrizioni a più canali specificati**  
Per annullare una sottoscrizione a più canali specificati, elenca i canali con il comando SUBSCRIBE. Nell'esempio seguente, un cliente effettua la sottoscrizione ai canali *news.sports.golf*, *news.sports.soccer* e *news.sports.skiing*.  

```
SUBSCRIBE news.sports.golf news.sports.soccer news.sports.skiing
```
Per annullare la sottoscrizione a un canale specificato, utilizza il comando UNSUBSCRIBE specificando il canale dal quale annullare la sottoscrizione.  

```
UNSUBSCRIBE news.sports.golf
```
Per annullare una sottoscrizione a più canali, utilizza il comando UNSUBSCRIBE e specifica i canali dai quali annullare la sottoscrizione.  

```
UNSUBSCRIBE news.sports.golf news.sports.soccer
```
Per annullare tutte le sottoscrizioni, usa `UNSUBSCRIBE` e specifica ogni canale. Oppure usa `UNSUBSCRIBE` e non specificare un canale.  

```
UNSUBSCRIBE news.sports.golf news.sports.soccer news.sports.skiing
```
or  

```
UNSUBSCRIBE
```

**Example – Sottoscrizioni mediante la corrispondenza di modelli**  
I clienti possono effettuare la sottoscrizione a tutti i canali corrispondenti a un modello mediante il comando PSUBSCRIBE.  
Nell'esempio seguente, un cliente effettua la sottoscrizione a tutti i canali sportivi. Non elenchi tutti i canali sportivi singolarmente, come si farebbe con `SUBSCRIBE`. Invece, con il comando `PSUBSCRIBE` si utilizza la corrispondenza del modello.  

```
PSUBSCRIBE news.sports.*
```

**Example Annullamento delle sottoscrizioni**  
Per annullare le sottoscrizioni a questi canali, utilizza il comando `PUNSUBSCRIBE`.  

```
PUNSUBSCRIBE news.sports.*
```
+ Le stringhe del canale inviate ai comandi [P]SUBSCRIBE e [P]UNSUBSCRIBE devono corrispondere. Non è possibile `PSUBSCRIBE` a *news.\$1* e `PUNSUBSCRIBE` da *news.sports.\$1* o `UNSUBSCRIBE` da *news.sports.golf*.
+ `PSUBSCRIBE`e non `PUNSUBSCRIBE` sono disponibili per ElastiCache Serverless.

### Pubblicazione
<a name="elasticache-for-redis-use-cases-messaging-publishing"></a>

Per inviare un messaggio a tutti coloro che hanno effettuato la sottoscrizione a un canale, utilizza il comando `PUBLISH` specificando il canale e il messaggio. L'esempio seguente pubblica il messaggio "It’s Saturday and sunny (è sabato e fa bel tempo. I'm headed to the links. (Vado ai link)”. sul canale *news.sports.golf*.

```
PUBLISH news.sports.golf "It's Saturday and sunny. I'm headed to the links."
```

Un client non può pubblicare su un canale a cui è abbonato.

Per ulteriori informazioni, consulta [Pub/Sub](https://valkey.io/topics/pubsub) nella documentazione di Valkey.

## Dati di raccomandazione (hash)
<a name="elasticache-for-redis-use-cases-recommendations"></a>

L'utilizzo di INCR o DECR in Valkey o Redis OSS semplifica la compilazione dei consigli. Ogni volta che un utente aggiunge un "mi piace" a un prodotto, si incrementa il contatore *item:productID:like*. Ogni volta che un utente aggiunge un "non mi piace" a un prodotto, si incrementa il contatore *item:productID:dislike*. Utilizzando gli hash, puoi anche mantenere un elenco di tutti coloro che hanno apprezzato o non apprezzato un prodotto.

**Example - "Mi piace" e "Non mi piace"**  

```
INCR item:38923:likes
HSET item:38923:ratings Susan 1
INCR item:38923:dislikes
HSET item:38923:ratings Tommy -1
```

## Caching semantico per applicazioni di intelligenza artificiale generativa
<a name="elasticache-for-redis-use-cases-semantic-caching"></a>

La gestione di applicazioni di intelligenza artificiale generativa su larga scala può essere difficile a causa del costo e della latenza associati alle chiamate di inferenza verso modelli linguistici di grandi dimensioni (). LLMs È possibile utilizzarle ElastiCache per il caching semantico nelle applicazioni di intelligenza artificiale generativa, che consente di ridurre il costo e la latenza delle chiamate di inferenza LLM. Con la memorizzazione nella cache semantica, è possibile restituire una risposta memorizzata nella cache utilizzando la corrispondenza vettoriale per trovare somiglianze tra i prompt correnti e quelli precedenti. Se il prompt di un utente è semanticamente simile a un prompt precedente, verrà restituita una risposta memorizzata nella cache anziché effettuare una nuova chiamata di inferenza LLM, riducendo il costo delle applicazioni di intelligenza artificiale generativa e fornendo risposte più rapide che migliorano l'esperienza dell'utente. Puoi controllare quali query vengono indirizzate alla cache configurando soglie di somiglianza per i prompt e applicando tag o filtri di metadati numerici.

Gli aggiornamenti in linea degli indici in tempo reale forniti dalla ricerca vettoriale ElastiCache aiutano a garantire che la cache si aggiorni continuamente man mano che arrivano le richieste degli utenti e le risposte LLM. Questa indicizzazione in tempo reale è fondamentale per mantenere aggiornati i risultati memorizzati nella cache e le percentuali di accesso alla cache, in particolare per i picchi di traffico. Inoltre, ElastiCache semplifica le operazioni di caching semantico attraverso primitive di cache mature come strategie di sfratto configurabili per chiave TTLs, operazioni atomiche e una ricca struttura dei dati e supporto per script.

**Memoria per assistenti e agenti di intelligenza artificiale generativa**

È possibile utilizzarla ElastiCache per fornire risposte più personalizzate e sensibili al contesto implementando meccanismi di memoria che consentono di visualizzare la cronologia delle conversazioni tra sessioni. LLMs La memoria conversazionale consente agli assistenti e agli agenti di intelligenza artificiale generativa di conservare e utilizzare le interazioni passate per personalizzare le risposte e migliorare la pertinenza. Tuttavia, la semplice aggregazione di tutte le interazioni precedenti nel prompt è inefficace poiché i token aggiuntivi irrilevanti aumentano i costi, riducono la qualità della risposta e rischiano di superare la finestra contestuale del LLM. È invece possibile utilizzare la ricerca vettoriale per recuperare e fornire solo i dati più rilevanti nel contesto per ogni chiamata LLM.

ElastiCache for Valkey fornisce integrazioni con livelli di memoria open source, fornendo connettori integrati per archiviare e recuperare memorie per applicazioni e agenti LLM. La ricerca vettoriale ElastiCache fornisce aggiornamenti rapidi dell'indice, mantiene la memoria aggiornata e rende immediatamente ricercabili nuovi ricordi. La ricerca vettoriale a bassa latenza velocizza le ricerche nella memoria, consentendone l'implementazione nel percorso online di ogni richiesta, non solo nelle attività in background. Oltre alla ricerca vettoriale, ElastiCache for Valkey fornisce anche primitive di memorizzazione nella cache per lo stato della sessione, le preferenze dell'utente e i flag delle funzionalità, fornendo un unico servizio per archiviare lo stato della sessione di breve durata e le «memorie» a lungo termine in un unico datastore. 

**Generazione aumentata di recupero (RAG)**

RAG è il processo di fornitura LLMs di up-to-date informazioni tempestive per migliorare la pertinenza delle risposte. RAG riduce le allucinazioni e migliora l'accuratezza dei fatti basando i risultati su fonti di dati reali. Le applicazioni RAG utilizzano la ricerca vettoriale per recuperare contenuti semanticamente rilevanti da una knowledge base. La ricerca vettoriale a bassa latenza fornita da la ElastiCache rende adatta all'implementazione di RAG in carichi di lavoro con set di dati di grandi dimensioni con milioni di vettori e oltre. Inoltre, il supporto per gli aggiornamenti degli indici vettoriali online lo rende ElastiCache adatto agli assistenti con flussi di lavoro di caricamento che devono garantire che i dati caricati siano immediatamente ricercabili. RAG nei sistemi di intelligenza artificiale agentica garantisce che gli agenti dispongano di informazioni per azioni accurate. up-to-date La ricerca vettoriale a bassa latenza è fondamentale anche per RAG nei sistemi di intelligenza artificiale agentica, in cui una singola query può attivare più chiamate LLM e aumentare la latenza della ricerca vettoriale sottostante. 

Il diagramma seguente illustra un esempio di architettura utilizzato ElastiCache per implementare una cache semantica, meccanismi di memoria e RAG per migliorare un'applicazione AI generativa in produzione.

![\[Diagramma di una ricerca semantica eseguita da un assistente AI generativo.\]](http://docs.aws.amazon.com/it_it/AmazonElastiCache/latest/dg/images/vector-search-gen-ai1.png)


**Ricerca semantica**

La ricerca vettoriale recupera i dati di testo, parlato, immagine o video più pertinenti in base alla vicinanza nel significato o nelle caratteristiche. Questa funzionalità consente applicazioni di machine learning che si basano sulla ricerca di similarità tra diverse modalità di dati, inclusi motori di raccomandazione, rilevamento delle anomalie, personalizzazione e sistemi di gestione della conoscenza. I sistemi di raccomandazione utilizzano rappresentazioni vettoriali per acquisire modelli complessi nel comportamento degli utenti e nelle caratteristiche degli elementi, consentendo loro di suggerire i contenuti più pertinenti. Vector search for ElastiCache è ideale per queste applicazioni grazie agli aggiornamenti quasi in tempo reale e alla bassa latenza, che consentono confronti di similarità che forniscono consigli istantanei e altamente pertinenti basati sulle interazioni degli utenti in tempo reale.

## ElastiCache Testimonianze dei clienti
<a name="elasticache-use-cases-testimonials"></a>

Per scoprire in che modo aziende come Airbnb, PBS, Esri e altre utilizzano Amazon ElastiCache per far crescere le proprie attività con una migliore esperienza cliente, consulta [Come gli altri utilizzano Amazon](https://aws.amazon.com/elasticache/testimonials/). ElastiCache

Puoi anche guardare i [video del tutorial](Tutorials.md#tutorial-videos) per altri casi d'uso da ElastiCache parte dei clienti.