

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cómo ElastiCache funciona
<a name="WhatIs.corecomponents"></a>

Aquí encontrará una descripción general de los principales componentes de una ElastiCache implementación.

## Caché y motores de almacenamiento en caché
<a name="WhatIs.corecomponents.cache"></a>

Una caché es un almacén de datos en memoria que puede utilizar para almacenar datos en caché. Por lo general, la aplicación almacenará en caché los datos a los que se accede con frecuencia para optimizar los tiempos de respuesta. ElastiCache ofrece dos opciones de implementación: cachés sin servidor y clústeres basados en nodos. Consulte [Cómo elegir una opción de implementación](WhatIs.deployment.md). 

**nota**  
Amazon ElastiCache funciona con los motores OSS Valkey, Memcached y Redis. Si no está seguro de qué motor desea utilizar, consulte [Comparación de los clústeres Valkey, Memcached y Redis OSS basados en nodos](SelectEngine.md) en esta guía.

**Topics**
+ [¿Cómo ElastiCache funciona](#WhatIs.HowELCworks)
+ [Dimensiones de precios](#WhatIs.ELCpricing)
+ [ElastiCache copias de seguridad](#WhatIs.corecomponents.backups-redis)

### ¿Cómo ElastiCache funciona
<a name="WhatIs.HowELCworks"></a>

**ElastiCache Sin servidor**

ElastiCache Serverless le permite crear una memoria caché sin preocuparse por la planificación de la capacidad, la administración del hardware o el diseño del clúster. Solo tiene que proporcionar un nombre para la caché y recibirá un único punto de conexión que podrá configurar en su cliente de Valkey, Memcached y Redis OSS para empezar a acceder a la caché.

**nota**  
ElastiCache Serverless ejecuta Valkey, Memcached o Redis OSS en modo clúster y solo es compatible con clientes compatibles con TLS. 

**Ventajas principales**


+ **Sin planificación de la capacidad:** ElastiCache Serverless elimina la necesidad de planificar la capacidad. ElastiCache Serverless monitorea continuamente el uso de la memoria, el cómputo y el ancho de banda de la red de la memoria caché y escala tanto vertical como horizontalmente. Permite que un nodo de caché aumente de tamaño y, en paralelo, inicia una operación de escalado horizontal para garantizar que la caché pueda escalarse a fin de cumplir con los requisitos de la aplicación en todo momento. 
+ **Pay-per-use:** Con ElastiCache Serverless, usted paga por los datos almacenados y el procesamiento utilizados por su carga de trabajo en la memoria caché. Consulte [Dimensiones de precios](#WhatIs.ELCpricing).
+ **Alta disponibilidad:** ElastiCache Serverless replica automáticamente sus datos en varias zonas de disponibilidad (AZ) para lograr una alta disponibilidad. Supervisa automáticamente los nodos de caché subyacentes y los reemplaza en caso de errores. Ofrece un SLA de disponibilidad del 99,99 % para cada caché. 
+ **Actualizaciones de software automáticas:** ElastiCache Serverless actualiza automáticamente la memoria caché a la última versión secundaria y actualiza el software sin que ello afecte a la disponibilidad de la aplicación. Cuando haya una nueva versión principal disponible, ElastiCache le enviaremos una notificación. 
+ **Seguridad:** la tecnología sin servidor cifra siempre los datos en tránsito y en reposo. Puede utilizar una clave administrada por el servicio o su propia clave administrada por el cliente para cifrar los datos en reposo. 

El siguiente diagrama ilustra cómo funciona ElastiCache Serverless.

![\[Un diagrama del funcionamiento de la caché ElastiCache sin servidor, desde las zonas de disponibilidad hasta la VPC del cliente y, después, hasta la VPC de servicio.\]](http://docs.aws.amazon.com/es_es/AmazonElastiCache/latest/dg/images/ELC-serverless-works1.png)


Al crear una nueva caché sin servidor, ElastiCache crea un punto final de Virtual Private Cloud (VPC) en las subredes que elija de la VPC. La aplicación se puede conectar a la memoria caché a través de estos puntos de conexión de VPC. 

Con ElastiCache Serverless, recibirá un único punto de enlace DNS al que se conectará su aplicación. Cuando solicita una nueva conexión al punto final, ElastiCache Serverless gestiona todas las conexiones de caché a través de una capa de proxy. La capa de proxy contribuye a reducir la compleja configuración del cliente, ya que este no necesita volver a detectar de nuevo la topología del clúster en caso de que haya cambios en el clúster subyacente. La capa proxy es un conjunto de nodos proxy que gestionan las conexiones mediante un equilibrador de carga de red. 

Cuando la aplicación crea una nueva conexión de caché, el equilibrador de carga de red envía la solicitud a un nodo proxy. Cuando la aplicación ejecuta comandos de caché, el nodo proxy que está conectado a la aplicación ejecuta las solicitudes en un nodo de caché de la memoria caché. La capa proxy abstrae la topología del clúster y los nodos del cliente. Esto permite ElastiCache equilibrar la carga, escalar y añadir nuevos nodos de caché de forma inteligente, reemplazar los nodos de caché cuando fallan y actualizar el software de los nodos de caché, todo ello sin que la disponibilidad afecte a la aplicación ni tenga que restablecer las conexiones. 

**Clústeres basados en nodos**

Para crear un ElastiCache clúster basado en nodos, elija una familia de nodos de caché, un tamaño y un número de nodos para su clúster. Crear un clúster basado en nodos le proporciona un control más detallado y le permite elegir la cantidad de particiones de la memoria caché y el número de nodos (principales y réplicas) de cada partición. Puede utilizar Valkey o Redis OSS en modo de clúster creando un clúster con varias particiones o en modo sin clúster con una sola partición. 

**Ventajas principales**
+ **Cree un clúster basado en nodos: con él** ElastiCache, puede crear un clúster basado en nodos y elegir dónde desea colocar los nodos de caché. Por ejemplo, si tiene una aplicación en la que quiere sacrificar una alta disponibilidad por una baja latencia, puede optar por implementar los nodos de caché en una única zona de disponibilidad. Como alternativa, puedes crear un clúster basado en nodos con varios nodos para lograr una alta disponibilidad. AZs 
+ **Control detallado:** al crear un clúster basado en nodos, tenemos más control a la hora de refinar la configuración de la caché. Por ejemplo, puede utilizar [Parámetros de Valkey y Redis OSS](ParameterGroups.Engine.md#ParameterGroups.Redis) y [Parámetros específicos de Memcached](ParameterGroups.Engine.md#ParameterGroups.Memcached) para configurar el motor de la caché.
+ **Escalar vertical y horizontalmente:** puede escalar el clúster manualmente aumentando o disminuyendo el tamaño del nodo de caché cuando sea necesario. Además, puede escalar horizontalmente añadiendo particiones nuevas o añadiendo más réplicas a sus particiones. También puede usar la característica de escalado automático para configurar el escalado en función de un cronograma o el escalado en función de métricas como el uso de CPU y memoria en la caché. 

El siguiente diagrama ilustra cómo funcionan los clústeres basados en nodos ElastiCache .

![\[Un diagrama del funcionamiento de los clústeres ElastiCache basados en nodos, desde las zonas de disponibilidad hasta la VPC del cliente y, después, hasta ElastiCache los nodos de caché gestionados.\]](http://docs.aws.amazon.com/es_es/AmazonElastiCache/latest/dg/images/ELC-serverless-works2.png)


### Dimensiones de precios
<a name="WhatIs.ELCpricing"></a>

Puede realizar la implementación ElastiCache en dos opciones de implementación. Al implementar ElastiCache Serverless, se paga por el uso de los datos almacenados en GB-hora y el procesamiento en unidades de ElastiCache procesamiento (ECPU). Al crear un clúster basado en nodos, se paga por hora de uso del nodo de caché. Puede encontrar más información sobre los precios [aquí](https://aws.amazon.com/elasticache/pricing/).

**Almacenamiento de datos**

Usted paga por los datos almacenados en ElastiCache Serverless facturados en gigabytes-hora (GB-hora). ElastiCache Serverless supervisa de forma continua los datos almacenados en la memoria caché, toma muestras varias veces por minuto y calcula un promedio por hora para determinar el uso de almacenamiento de datos de la memoria caché en GB por hora. Cada caché ElastiCache sin servidor se mide para un mínimo de 1 GB de datos almacenados.

**ElastiCache Unidades de procesamiento () ECPUs**

Usted paga por las solicitudes que su aplicación ejecuta en ElastiCache Serverless in ElastiCache Processing Units (ECPUs), una unidad que incluye tanto el tiempo de vCPU como los datos transferidos. 
+ Las lecturas y escrituras sencillas requieren 1 ECPU por cada kilobyte (KB) de datos transferidos. Por ejemplo, un comando GET que transfiere hasta 1 KB de datos consume 1 ECPU. Una solicitud SET que transfiera 3,2 KB de datos consumirá 3,2 KB. ECPUs
+ Con Valkey y Redis OSS, los comandos que consumen más tiempo de vCPU y transfieren más datos consumen en ECPUs función de la más alta de las dos dimensiones. Por ejemplo, si la aplicación usa el comando HMGET, consume 3 veces el tiempo de vCPU que un comando SET/GET simple y transfiere 3,2 KB de datos, consumirá 3,2 ECPU. Como alternativa, si transfiere solo 2 KB de datos, consumirá 3. ECPUs 
+ Con Valkey y Redis OSS, los comandos que requieren más tiempo de vCPU consumirán proporcionalmente más. ECPUs Por ejemplo, si la aplicación utiliza el [comando HMGET](https://valkey.io/commands/hmget/) OSS de Valkey o Redis y consume 3 veces el tiempo de vCPU que un SET/GET comando simple, consumirá 3. ECPUs 
+ Con Memcached, los comandos que funcionan con varios elementos consumirán proporcionalmente más. ECPUs Por ejemplo, si su aplicación realiza una multiobtención en 3 elementos, consumirá 3. ECPUs
+ Con Memcached, los comandos que funcionan con más elementos y transfieren más datos consumen en ECPUs función de la más alta de las dos dimensiones. Por ejemplo, si la aplicación utiliza el comando GET, recupera tres elementos y transfiere 3,2 KB de datos, consumirá 3,2 ECPU. Como alternativa, si transfiere solo 2 KB de datos, consumirá 3. ECPUs

ElastiCache Serverless emite una nueva métrica llamada `ElastiCacheProcessingUnits` que le ayuda a comprender lo que ECPUs consume su carga de trabajo. 

**Horas de nodo**

Puede crear un clúster basado en nodos eligiendo la familia de EC2 nodos, el tamaño, la cantidad de nodos y la ubicación en las zonas de disponibilidad. Al crear un clúster basado en nodos, se paga por hora de uso de cada nodo de caché. 

### ElastiCache copias de seguridad
<a name="WhatIs.corecomponents.backups-redis"></a>

Una *copia de seguridad* es una point-in-time copia de una caché sin servidor o de un clúster basado en nodos OSS de Valkey o Redis. ElastiCache le permite realizar una copia de seguridad de sus datos en cualquier momento o configurar copias de seguridad automáticas. Dichas copias de seguridad pueden usarse para restaurar una caché existente o para propagar datos en una nueva caché. Las copias de seguridad se componen de todos los datos en una caché, además de algunos metadatos. Para obtener más información, consulte [Instantánea y restauración](backups.md).

# Cómo elegir una opción de implementación
<a name="WhatIs.deployment"></a>

Amazon ElastiCache tiene dos opciones de implementación:
+ Almacenamiento en caché sin servidor
+ Clústeres basados en nodos

Para obtener una lista de comandos admitidos para ambos, consulte [Comandos de Valkey, Memcached y Redis OSS compatibles y restringidos](SupportedCommands.md).

**Almacenamiento en caché sin servidor**

Amazon ElastiCache Serverless simplifica la creación de caché y se escala al instante para dar soporte a las aplicaciones más exigentes de los clientes. Con ElastiCache Serverless, puede crear una caché escalable y de alta disponibilidad en menos de un minuto, lo que elimina la necesidad de aprovisionar, planificar y administrar la capacidad del clúster. ElastiCache Serverless almacena automáticamente los datos de forma redundante en tres zonas de disponibilidad y proporciona un acuerdo de nivel de servicio (SLA) de disponibilidad del 99,99%. Las copias de seguridad de los clústeres basados en nodos de Valkey o Redis OSS se pueden restaurar en una configuración sin servidor.

**Clústeres basados en nodos**

Si necesita un control detallado de su clúster OSS de Valkey, Memcached o Redis, puede crear un clúster basado en nodos con él. ElastiCache Puede elegir el tipo de nodo, la cantidad de nodos y la ubicación de los nodos en las zonas de disponibilidad de su clúster.AWS Como ElastiCache se trata de un servicio totalmente gestionado, ayuda a gestionar el aprovisionamiento del hardware, la supervisión, la sustitución de nodos y la aplicación de parches de software para el clúster. Los clústeres basados en nodos se pueden diseñar para ofrecer un SLA de disponibilidad de hasta el 99,99 %. Las copias de seguridad de las cachés de Valkey o Redis OSS sin servidor se pueden restaurar en un clúster basado en nodos.

**Cómo elegir una opción de implementación**

Elija el almacenamiento en caché sin servidor en los siguientes casos:
+ Va a crear una caché para cargas de trabajo nuevas o difíciles de predecir.
+ El tráfico de la aplicación es impredecible.
+ Desea optar por la forma más sencilla de comenzar a utilizar una caché.

Cree su propio clúster basado en nodos si:
+ Ya utiliza ElastiCache Serverless y desea tener un control más preciso sobre el tipo de nodo en el que se ejecuta Valkey, Memcached o Redis OSS, el número de nodos y la ubicación de dichos nodos. 
+ Espera que el tráfico de sus aplicaciones sea relativamente predecible y desea tener un control detallado del rendimiento, la disponibilidad y el costo. 
+ Puede prever los requisitos de capacidad para controlar los costes.

## Comparación entre el almacenamiento en caché sin servidor y los clústeres basados en nodos
<a name="WhatIs.deployment.comparing"></a>


| Característica | Almacenamiento en caché sin servidor | Clústeres basados en nodos | 
| --- | --- | --- | 
|  Configuración de caché  |  Cree una caché únicamente con un nombre en menos de un minuto  |  Proporciona un control detallado sobre el diseño del clúster. El usuario puede elegir el tipo de nodo, la cantidad de nodos y la ubicación en las distintas zonas de disponibilidad AWS  | 
|  Versión compatible ElastiCache   |  Valkey 7.2 y versiones posteriores, Redis OSS versión 7.1 y posteriores, Memcached 1.6.21 y versiones posteriores  |  Valkey 7.2 y versiones posteriores, Redis OSS versión 4.0 y posteriores, Memcached 1.4 y versiones posteriores  | 
|  Modo de clúster (Valkey y Redis OSS)  |  Hace funcionar los motores únicamente en `cluster mode enabled`. Los clientes deben ser compatibles `cluster mode enabled` para conectarse a ElastiCache Serverless.  |  Se puede configurar para que funcione en el modo de clúster habilitado o en el modo de clúster deshabilitado.  | 
|  Escalado  |  Escala automáticamente los motores tanto vertical como horizontalmente sin administrar la capacidad.  |  Permite controlar el escalado y, al mismo tiempo, requiere supervisión para garantizar que la capacidad actual satisfaga adecuadamente la demanda. Para Valkey y Redis OSS, puede escalar verticalmente aumentando o disminuyendo el tamaño del nodo de caché cuando sea necesario. Además, puede escalar horizontalmente añadiendo particiones nuevas o añadiendo más réplicas a sus particiones. Esta capacidad no está disponible para Memcached. Con la característica de escalado automático, también puede configurar el escalado en función de un cronograma o escalar en función de métricas como el uso de CPU y memoria en la caché.  | 
|  Conexiones de clientes  |  Los clientes se conectan a un único punto de conexión. Esto permite que la topología del nodo de caché subyacente (escalado, reemplazos y actualizaciones) cambie sin desconectar el cliente.  |  Los clientes se conectan a cada nodo de caché individual. Si se reemplaza un nodo, el cliente vuelve a descubrir la topología del clúster y restablece las conexiones.  | 
|  Capacidad de configuración  |  No hay disponible una configuración detallada. Los clientes pueden configurar los ajustes básicos, como las subredes que pueden acceder a la caché, si se activan o desactivan las copias de seguridad automáticas y los límites máximos de uso de la caché.   |  Los clústeres basados en nodos ofrecen opciones de configuración detalladas. Los clientes pueden usar grupos de parámetros para disfrutar de un control detallado. Para ver una tabla de estos valores de los parámetros por tipo de nodo, consulte [Parámetros específicos del motor](ParameterGroups.Engine.md).  | 
|  Multi-AZ  |  Los datos se replican de forma asíncrona en varias zonas de disponibilidad para aumentar la disponibilidad y mejorar la latencia de lectura.  |  Ofrece la opción de crear el clúster en una única zona de disponibilidad o en varias zonas de disponibilidad (AZs). Al utilizar Valkey o Redis OSS, proporciona clústeres multi-AZ con datos replicados de forma asíncrona en varias zonas de disponibilidad para aumentar la disponibilidad y mejorar la latencia de lectura.  | 
|  Cifrado en reposo  |  Siempre habilitado. Los clientes pueden usar una clave Clave administrada de AWS o una clave administrada por el cliente AWS KMS.  |  Opción de habilitar o deshabilitar el cifrado en reposo. Cuando está habilitada, los clientes pueden usar una clave Clave administrada de AWS o una clave gestionada por el cliente AWS KMS.   | 
|  Cifrado en tránsito (TLS)  |  Siempre habilitado. Los clientes deben admitir la conectividad de TLS.   |  Opción para habilitar o deshabilitar.  | 
|  Copias de seguridad  |  Admite copias de seguridad automáticas y manuales de las cachés sin que ello afecte al rendimiento. Las copias de seguridad de Valkey y Redis OSS son compatibles entre sí y se pueden restaurar en una caché ElastiCache sin servidor o en un clúster basado en nodos.  |  Admite copias de seguridad automáticas y manuales para Valkey y Redis OSS. El rendimiento de los clústeres puede verse afectado en cierta medida en función de la memoria reservada disponible. Para obtener más información, consulte [Administración de la memoria reservada para Valkey y Redis OSS](redis-memory-management.md). Las copias de seguridad de Valkey y Redis OSS son compatibles entre sí y se pueden restaurar en una caché sin servidor o en un clúster basado en nodos. ElastiCache   | 
|  Supervisión  |  Support métricas de nivel de caché, incluida la tasa de aciertos de caché, la tasa de errores de caché, el tamaño de los datos y el ECPUs consumo. ElastiCache Serverless envía los eventos EventBridge cuando ocurren eventos importantes en la memoria caché. Puedes elegir monitorizar, asimilar, transformar y actuar en función de ElastiCache los eventos con Amazon EventBridge. Para obtener más información, consulte [Eventos de caché sin servidor](serverless-metrics-events-redis.md#serverless-events).  |   ElastiCache Los clústeres basados en nodos emiten métricas en cada nivel de nodo, incluidas las métricas a nivel de host y las métricas de caché. Los clústeres basados en nodos emiten notificaciones de SNS en caso de eventos importantes. Consulte [Métricas de Memcached](CacheMetrics.Memcached.md) y [Métricas de Valkey y Redis OSS](CacheMetrics.Redis.md).  | 
|  Disponibilidad.  |  [Acuerdo de nivel de servicio (SLA](https://aws.amazon.com/elasticache/sla/)) con una disponibilidad del 99,99 %  |  Los clústeres basados en nodos se pueden diseñar para alcanzar un [acuerdo de nivel de servicio (SLA)](https://aws.amazon.com/elasticache/sla/) de disponibilidad de hasta el 99,99 %, según la configuración.  | 
|  Actualizaciones de software y parches  |  Actualiza automáticamente el software de caché a la versión secundaria y la versión de parche más recientes, sin que ello afecte a la aplicación. Los clientes reciben una notificación sobre las actualizaciones de las versiones principales y pueden actualizar a la versión principal más reciente cuando lo deseen.  |  Los clústeres basados en nodos ofrecen una función de autoservicio habilitada por el cliente para realizar las actualizaciones de versiones secundarias y parches, así como para actualizaciones de versiones principales. Las actualizaciones administradas se aplican automáticamente durante el período de mantenimiento definido por el cliente. Los clientes también pueden optar por aplicar una actualización de la versión secundaria o de un parche bajo pedido.   | 
|  Almacén de datos global   |  No compatible   |  Admite el almacén de datos global, que permite la replicación entre regiones con escrituras en una sola región y lecturas en varias regiones  | 
|  Organización de datos en niveles  |  No compatible  |  Los clústeres que se han creado utilizando nodos de la familia r6gd tienen sus datos en niveles entre la memoria y el almacenamiento de SSD local (unidades de estado sólido). La organización de datos en niveles ofrece una opción de relación precio-rendimiento para las cargas de trabajo OSS de Valkey y Redis, ya que utiliza unidades de estado sólido (SSDs) de menor costo en cada nodo del clúster, además de almacenar los datos en la memoria.  | 
|  Modelo de precios  |  Pay-per-use, en función de los datos almacenados en GB-hora y las solicitudes en las unidades de procesamiento (ECPU). ElastiCache Puede encontrar más información sobre los precios [aquí](https://aws.amazon.com/elasticache/pricing/).  |  Pay-per-hour, en función del uso de los nodos de caché. Puede encontrar más información sobre los precios [aquí](https://aws.amazon.com/elasticache/pricing/).  | 

Temas relacionados:
+ [Creación y administración de un clúster basado en nodos ElastiCacheCrear y administrar un clúster basado en nodos ElastiCache ](designing-elasticache-cluster.md)

# ElastiCache Recursos de Amazon para usuarios primerizos
<a name="WhatIs.FirstTimeUser"></a>

Recomendamos a los nuevos usuarios que empiecen por leer las secciones siguientes y que las consulten cuando sea necesario.
+ **Aspectos destacados del servicio y precios**: la [página de detalles del producto](https://aws.amazon.com/elasticache/) proporciona una descripción general del producto ElastiCache, los aspectos más destacados del servicio y los precios.
+ **ElastiCache vídeos**: la [Videos de ElastiCache](Tutorials.md#tutorial-videos) sección tiene vídeos que te presentan Amazon ElastiCache. En los vídeos se describen casos de uso habituales ElastiCache y se muestra cómo utilizarlos ElastiCache para reducir la latencia y mejorar el rendimiento de sus aplicaciones.
+ **Introducción**: la sección [Cómo empezar con Amazon ElastiCache](GettingStarted.md) incluye información sobre la creación de una caché. Explica también cómo autorizar el acceso al clúster de caché, conectarse a un nodo de caché y eliminar el caché.
+ **Rendimiento a escala**: el ElastiCache documento técnico [Performance at scale with Amazon](https://d0.awsstatic.com/whitepapers/performance-at-scale-with-amazon-elasticache.pdf) aborda las estrategias de almacenamiento en caché que ayudan a que su aplicación funcione bien a escala.

Cuando complete las secciones anteriores, lea estas secciones:
+ [Elección del tamaño del nodo](CacheNodes.SelectSize.md)

  Desea que los nodos sean lo suficientemente grandes como para alojar todos los datos que necesite almacenar en caché. Al mismo tiempo, no desea pagar más caché de la que necesita. Puede utilizar este tema para ayudarlo a seleccionar el mejor tamaño de nodo.
+ [Procedimientos recomendados y estrategias de almacenamiento en caché de ElastiCache](BestPractices.md)

  Identifique y aborde los problemas que pueden influir en la eficacia del clúster.

Si quieres usar el AWS Command Line Interface(AWS CLI), puedes usar estos documentos como ayuda para empezar:
+ [AWS Command Line Interface documentación](https://docs.aws.amazon.com/cli/)

  En esta sección se proporciona información sobre cómo descargar el sistema AWS CLI, cómo ponerlo en AWS CLI funcionamiento y cómo proporcionar sus AWS credenciales.
+ [AWS CLI documentación para ElastiCache](https://docs.aws.amazon.com/cli/latest/reference/elasticache/index.html)

  Este documento independiente cubre todos los cuatro AWS CLI ElastiCache comandos, incluida la sintaxis y los ejemplos.

Puede escribir programas de aplicación para usar la ElastiCache API con una variedad de lenguajes de programación populares. Estos son algunos de los recursos:
+ [Herramientas para Amazon Web Services](https://aws.amazon.com/tools/)

  Amazon Web Services proporciona varios kits de desarrollo de software (SDKs) con soporte para ElastiCache. Puede programar para ElastiCache usar Java, .NET, PHP, Ruby y otros lenguajes. Estos SDKs pueden simplificar considerablemente el desarrollo de las aplicaciones, ya que dan formato a las solicitudes ElastiCache, analizan las respuestas y proporcionan una lógica de reintento y gestión de errores. 
+ [Uso de la API de ElastiCache](ProgrammingGuide.md)

  Si no quieres usar la AWS SDKs, puedes interactuar ElastiCache directamente con ella mediante la API de consultas. En esta sección, puede encontrar consejos de solución de problemas e información acerca de la creación y autenticación de solicitudes, así como de la gestión de respuestas. 
+ [Referencia de ElastiCache la API de Amazon](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/)

  Este documento independiente cubre todas las operaciones de la ElastiCache API, incluida la sintaxis y los ejemplos.

# AWSRegiones y zonas de disponibilidad de
<a name="WhatIs.AZs"></a>

Los recursos de informática en la nube de Amazon están alojados en instalaciones de centros de datos con alta disponibilidad, en diferentes zonas del mundo (por ejemplo, Norteamérica, Europa o Asia). Cada ubicación del centro de datos se denomina AWS región.

Cada AWS región contiene varias ubicaciones distintas denominadas zonas de disponibilidad o AZ. Cada zona de disponibilidad está diseñada para quedar aislada en caso de error en otras zonas de disponibilidad. Cada una de ellas está diseñada para proporcionar conectividad de red económica y de baja latencia a otras zonas de disponibilidad de la misma AWS región. Al lanzar instancias en distintas zonas de disponibilidad, puede proteger sus aplicaciones de los errores que se produzcan en una única ubicación. Para obtener más información, consulte [Elección de regiones y zonas de disponibilidad](RegionsAndAZs.md).

Puede crear un clúster en varias zonas de disponibilidad, lo que recibe el nombre de implementación Multi-AZ. Cuando elige esta opción, Amazon aprovisiona y mantiene una instancia de nodos secundaria en espera en una zona de disponibilidad diferente de forma automática. Su instancia de nodo primario se replica de forma asincrónica en las zonas de disponibilidad para la instancia secundaria. Este enfoque ayuda a proporcionar redundancia de datos y soporte de conmutación por error, elimina los bloqueos de E/S y minimiza los picos de latencia durante las copias de seguridad del sistema. Para obtener más información, consulte [Minimización del tiempo de inactividad en ElastiCache para Valkey y Redis OSS con Multi-AZ](AutoFailover.md).

# Casos de ElastiCache uso comunes y cómo ElastiCache pueden ayudar
<a name="elasticache-use-cases"></a>

Tanto si se trata de la publicación de las últimas noticas, de una tabla de clasificación Top 10, de un catálogo de productos o de la venta de entradas para un espectáculo, la velocidad es un factor clave a tener en cuenta. El éxito de su sitio web y de su negocio depende considerablemente de la rapidez con la que se entrega el contenido. 

En el artículo del New York Times “[For Impatient Web Users, an Eye Blink Is Just Too Long to Wait](http://www.nytimes.com/2012/03/01/technology/impatient-web-users-flee-slow-loading-sites.html?pagewanted=all&_r=0)” (Para un usuario impaciente de Internet, un abrir y cerrar de ojos ya es esperar demasiado), se observó que los usuarios pueden percibir una diferencia de 250 milisegundos (1/4 de segundo) entre los sitios competidores. Los usuarios suelen descartar el sitio más lento en favor del más rápido. Las pruebas realizadas en Amazon, citadas en [How Webpage Load Time Is Related to Visitor Loss](http://pearanalytics.com/blog/2009/how-webpage-load-time-related-to-visitor-loss/) (Relación entre el tiempo de carga de la página web y la pérdida de visitantes), revelaron que por cada incremento de 100 ms (1/10 de segundo) de tiempo de carga, las ventas disminuían un 1 %. 

Si alguien necesita tener acceso a estos datos, puede entregar esos datos mucho más rápido si se almacenan en caché. Eso es cierto, independientemente de si se trata de una página web o de un informe que impulsa las decisiones empresariales. ¿Puede su negocio permitirse no almacenar en caché sus páginas web con el fin de ofrecerlas con la menor latencia posible?

Puede parecer intuitivamente evidente que desee almacenar en caché los elementos más solicitados. Pero ¿por qué no en almacenar en la caché los elementos solicitados con menos frecuencia? Incluso la consulta de la base de datos más optimizada o las llamadas a la API remota van a ser notablemente más lentas que recuperar una clave plana en una caché en memoria. El concepto de *notablemente más lento* suele mandar a los clientes a otro sitio.

Los siguientes ejemplos ilustran algunas de las formas en que el uso ElastiCache puede mejorar el rendimiento general de la aplicación.

**Topics**
+ [Almacenamiento de datos en memoria](#elasticache-use-cases-data-store)
+ [Tablas de clasificación de juegos](#elasticache-for-redis-use-cases-gaming)
+ [Mensajería (publicación/suscripción)](#elasticache-for-redis-use-cases-messaging)
+ [Datos de recomendación (valores hash)](#elasticache-for-redis-use-cases-recommendations)
+ [Almacenamiento en caché semántico para aplicaciones de IA generativa](#elasticache-for-redis-use-cases-semantic-caching)
+ [ElastiCache Testimonios de clientes](#elasticache-use-cases-testimonials)

## Almacenamiento de datos en memoria
<a name="elasticache-use-cases-data-store"></a>

El propósito principal del almacenamiento en memoria de pares clave-valor es proporcionar un acceso ultrarrápido (latencia de milisegundos) y económico a las copias de datos. La mayoría de almacenes de datos tienen áreas de datos a los que se accede con frecuencia, pero que raramente se actualizan. Además, la consulta de una base de datos siempre será más lenta y más cara que la localización de una clave en una caché de par clave-valor. Algunas consultas de base de datos son especialmente costosas de realizar. Por ejemplo, las consultas que implican uniones entre varias tablas o las consultas con cálculos intensivos. Al almacenar en caché resultados de una consulta de este tipo, solo pagará el precio de la consulta una vez. A continuación, puede recuperar rápidamente los datos varias veces sin tener que volver a ejecutar la consulta.

### ¿Qué debo almacenar en caché?
<a name="elasticache-use-cases-data-store-what-to-cache"></a>

A la hora de decidir qué datos almacenar en caché, tenga en cuenta estos factores:

**Velocidad y gastos**: siempre es más lento y más caro adquirir los datos de una base de datos que de una caché. Algunas consultas de base de datos son intrínsecamente más lentas y más caras que otras. Por ejemplo, las consultas que realizan uniones en varias tablas son mucho más lentas y más caras que las consultas sencillas en una única tabla. Si los datos interesantes que se desean adquirir requieren una consulta lenta y cara, son un candidato para el almacenamiento en caché. Si la adquisición de los datos requiere una consulta relativamente rápida y sencilla, puede ser un candidato para el almacenamiento en caché, en función de otros factores.

**Patrón de datos y acceso**: determinar qué almacenar en caché también implica comprender los datos en sí y sus patrones de acceso. Por ejemplo, no tiene sentido almacenar en caché los datos a los que se accede raramente o que cambian rápidamente. Para que el almacenamiento en caché proporcione un beneficio real, los datos deben ser relativamente estáticos y el acceso a estos debería ser frecuente. Un ejemplo es un perfil personal en un sitio de redes sociales. Por otro lado, no deseará almacenar en caché datos si dicho almacenamiento no supone ventajas de velocidad o costos. Por ejemplo, no tiene sentido almacenar en caché páginas web que devuelven los resultados de búsqueda, ya que estas consultas y sus resultados suelen ser únicos.

**Estancamiento**: por definición, los datos almacenados en caché son datos obsoletos. Incluso si en ciertas circunstancias no se encuentran obsoletos, siempre deben considerarse y tratarse como obsoletos. Para determinar si sus datos son un candidato para el almacenamiento en caché, debe evaluar la tolerancia de su aplicación a los datos obsoletos. 

Es posible que la aplicación sea capaz de tolerar datos obsoletos en un contexto, pero no en otro. Por ejemplo, suponga que su sitio web sirve a un precio bursátil. Sus clientes podrían aceptar cierto estancamiento con una exención de responsabilidad de que los precios podrían tener un retraso de *n* minutos. Sin embargo, si presenta ese precio a un agente que realiza una venta o una compra, deseará tener datos en tiempo real.

Considere la posibilidad de almacenar en caché los datos si:
+ Resultan lentos o caros de adquirir en comparación con la recuperación en caché.
+ Los usuarios acceden a sus datos con frecuencia.
+ Sus datos se mantienen relativamente iguales, o si cambian con rapidez, el estancamiento no es un problema importante.

Para obtener más información, consulte [Estrategias de almacenamiento en caché para Memcached](Strategies.md)

## Tablas de clasificación de juegos
<a name="elasticache-for-redis-use-cases-gaming"></a>

Con los conjuntos ordenados de Valkey o Redis OSS, puede trasladar la complejidad computacional de las tablas de clasificación de su aplicación a su clúster.

Las tablas de clasificación, como las de 10 mejores puntuaciones de un juego, son complejas en términos informáticos. Esto es especialmente cierto cuando hay un gran número de jugadores simultáneos y las puntuaciones cambian de forma constante. Los conjuntos ordenados de Valkey y Redis OSS garantizan tanto la exclusividad como la ordenación de los elementos. Con los conjuntos ordenados, cada vez que se añade un nuevo elemento al conjunto ordenado, este se vuelve a clasificar en tiempo real. A continuación, se agrega al conjunto en el orden numérico correcto. 

En el siguiente diagrama, puedes ver cómo funciona una tabla de clasificación de ElastiCache juegos.

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


**Example Tabla de clasificación de Valkey o Redis OSS**  
En este ejemplo, cuatro jugadores y sus puntuaciones se introducen en una lista ordenada mediante `ZADD`. El comando `ZREVRANGEBYSCORE` muestra a los jugadores por su puntuación, de más alta a más baja. A continuación, `ZADD` se utiliza para actualizar la puntuación de June, sobrescribiendo la entrada existente. Por último, `ZREVRANGEBYSCORE` muestra a los jugadores por su puntuación, de más alta a más baja. La lista muestra que June ha ascendido en la clasificación.  

```
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
```
El siguiente comando permite a June conocer dónde se sitúa entre todos los jugadores. Dado que la clasificación está basada en cero, *ZREVRANK* devuelve un 1 para June, que está en segunda posición.  

```
ZREVRANK leaderboard June 
1
```

Para obtener más información, consulte la [documentación de Valkey](https://valkey.io/topics/sorted-sets/) acerca de los conjuntos ordenados.

## Mensajería (publicación/suscripción)
<a name="elasticache-for-redis-use-cases-messaging"></a>

Al enviar un mensaje de correo electrónico, lo envía a uno o a varios destinatarios especificados. En el paradigma de publicación/suscripción de Valkey y Redis OSS, se envía un mensaje a un canal específico sin saber quién lo recibirá y si lo recibirá. Las personas que reciben el mensaje son aquellas que se encuentran suscritas al canal. Por ejemplo, suponga que se suscribe al canal *news.sports.golf*. Usted y todos los demás que se hayan suscrito al canal *news.sports.golf* recibirán todos los mensajes que se publiquen en *news.sports.golf*.

La funcionalidad de publicación/suscripción de Redis no tiene ninguna relación con ningún espacio de claves. Por lo tanto, no interferirá en ningún nivel. En el siguiente diagrama, puede encontrar una ilustración de la ElastiCache mensajería con Valkey y Redis OSS.

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


### Suscripción
<a name="elasticache-use-cases-messaging-subscribing"></a>

Para recibir mensajes en un canal, debe suscribirse a dicho canal. Puede suscribirse a un solo canal, a varios canales especificados o a todos los canales que coincidan con un patrón. Para cancelar una suscripción, debe cancelar la suscripción al canal especificado en el momento de la suscripción. O bien, si se ha suscrito mediante la coincidencia de patrones, anula la suscripción con el mismo patrón que utilizó antes.

**Example - Suscripción a un único canal**  
Para suscribirse a un solo canal, utilice el comando SUBSCRIBE y especifique el canal al que se desea suscribir. En el siguiente ejemplo, un cliente se suscribe al canal *news.sports.golf*.  

```
SUBSCRIBE news.sports.golf
```
Después de un tiempo, el cliente cancela su suscripción al canal con el comando UNSUBSCRIBE y especifica el canal del que desea cancelar la suscripción.  

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

**Example - Suscripciones a varios canales especificados**  
Para suscribirse a varios canales específicos, enumere los canales con el comando SUBSCRIBE. En el siguiente ejemplo, un cliente se suscribe a los canales *news.sports.golf*, *news.sports.soccer* y *news.sports.skiing*  

```
SUBSCRIBE news.sports.golf news.sports.soccer news.sports.skiing
```
Para cancelar una suscripción a un canal específico, utilice el comando UNSUBSCRIBE y especifique el canal del que desea cancelar la suscripción.  

```
UNSUBSCRIBE news.sports.golf
```
Para cancelar suscripciones a varios canales, utilice el comando UNSUBSCRIBE y especifique los canales de los que desea cancelar la suscripción.  

```
UNSUBSCRIBE news.sports.golf news.sports.soccer
```
Para cancelar todas las suscripciones, utilice `UNSUBSCRIBE` y especifique cada canal. O utilice `UNSUBSCRIBE` y no especifique un canal.  

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

```
UNSUBSCRIBE
```

**Example - Suscripciones mediante la coincidencia de patrones**  
Los clientes pueden suscribirse a todos los canales que coincidan con un patrón con el comando PSUBSCRIBE.  
En el siguiente ejemplo, un cliente se suscribe a todos los canales de deportes. No enumera todos los canales de deportes de manera individual, como se haría con `SUBSCRIBE`. En su lugar, con el comando `PSUBSCRIBE`, se utiliza la coincidencia de patrones.  

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

**Example Cancelación de suscripciones**  
Para cancelar las suscripciones a estos canales, utilice el comando `PUNSUBSCRIBE`.  

```
PUNSUBSCRIBE news.sports.*
```
+ La cadena de canales enviada al comando [P]SUBSCRIBE y la enviada al comando [P]UNSUBSCRIBE deben coincidir. No puede `PSUBSCRIBE` a *news.\$1* y `PUNSUBSCRIBE` de *news.sports.\$1* o `UNSUBSCRIBE` de *news.sports.golf*.
+ `PSUBSCRIBE`y no `PUNSUBSCRIBE` están disponibles para ElastiCache Serverless.

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

Para enviar un mensaje a todos los suscriptores de un canal, utilice el comando `PUBLISH` y especifique el canal y el mensaje. En el siguiente ejemplo, se publica el mensaje: “It’s Saturday and sunny. I’m headed to the links” (Es sábado y está soleado. Vayamos directamente a los enlaces). en el canal *news.sports.golf*.

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

Un cliente no puede publicar en un canal al que está suscrito.

Para obtener más información, consulte el tema sobre la [publicación/suscripción](https://valkey.io/topics/pubsub) en la documentación de Valkey.

## Datos de recomendación (valores hash)
<a name="elasticache-for-redis-use-cases-recommendations"></a>

El uso de INCR o DECR en Valkey o Redis OSS simplifica la compilación de recomendaciones. Cada vez que un usuario da un “me gusta” a un producto, aumenta un contador *item:productID:like*. Cada vez que un usuario da un “no me gusta” a un producto, aumenta un contador *item:productID:dislike*. Al utilizar hash, también puede mantener una lista de todos los que han indicado que les gusta o no les gusta un producto.

**Example - Me gusta y no me gusta**  

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

## Almacenamiento en caché semántico para aplicaciones de IA generativa
<a name="elasticache-for-redis-use-cases-semantic-caching"></a>

Operar aplicaciones de IA generativa a gran escala puede resultar difícil debido al coste y la latencia asociados a las llamadas de inferencia a modelos de lenguaje de gran tamaño (). LLMs Puede utilizarlas ElastiCache para el almacenamiento en caché semántico en aplicaciones de IA generativa, lo que le permite reducir el coste y la latencia de las llamadas de inferencia LLM. Con el almacenamiento en caché semántico, puede devolver una respuesta almacenada en caché mediante una coincidencia basada en vectores para encontrar similitudes entre las peticiones actuales y las anteriores. Si la petición de un usuario es semánticamente similar a una anterior, se devolverá una respuesta en caché en lugar de realizar una nueva llamada de inferencia a LLM, lo que reduce el costo de las aplicaciones de IA generativa y proporciona respuestas más rápidas que mejoran la experiencia del usuario. Puede controlar qué consultas se envían a la memoria caché configurando umbrales de similitud para las peticiones y aplicando filtros de metadatos numéricos o de etiquetas.

Las actualizaciones de índices en línea y en tiempo real que proporciona la búsqueda vectorial ElastiCache ayudan a garantizar que la memoria caché se actualice continuamente a medida que los usuarios solicitan información y reciben respuestas de LLM. Esta indexación en tiempo real es fundamental para mantener actualizados los resultados almacenados en caché y las tasas de aciertos de caché, especialmente en el caso de los picos de tráfico. Además, ElastiCache simplifica las operaciones de almacenamiento en caché semántico mediante primitivas de caché consolidadas, como estrategias de desalojo configurables por clave TTLs, operaciones atómicas y una amplia estructura de datos y compatibilidad con secuencias de comandos.

**Memoria para agentes y asistentes de IA generativa**

Se pueden utilizar ElastiCache para ofrecer respuestas más personalizadas y sensibles al contexto mediante la implementación de mecanismos de memoria que permiten extraer el historial de conversaciones entre sesiones. LLMs La memoria conversacional permite a los asistentes y agentes de IA generativa retener y utilizar las interacciones pasadas para personalizar las respuestas y mejorar la relevancia. Sin embargo, el simple hecho de agregar todas las interacciones anteriores en la petición no es efectivo, ya que los tokens adicionales irrelevantes aumentan el costo, degradan la calidad de la respuesta y corren el riesgo de superar el contexto del LLM. En su lugar, puede utilizar la búsqueda vectorial para recuperar y proporcionar solo los datos pertinentes en el contexto de cada invocación del LLM.

ElastiCache for Valkey ofrece integraciones con capas de memoria de código abierto y ofrece conectores integrados para almacenar y recuperar memorias para aplicaciones y agentes de LLM. ElastiCache La búsqueda vectorial proporciona actualizaciones rápidas de los índices, lo que mantiene la memoria actualizada y permite buscar nuevos recuerdos de forma inmediata. La búsqueda vectorial de baja latencia agiliza las búsquedas en memoria, lo que permite implementarlas en la ruta en línea de cada solicitud, no solo en tareas en segundo plano. Además de la búsqueda vectorial, ElastiCache Valkey también proporciona primitivas de almacenamiento en caché para el estado de la sesión, las preferencias del usuario y los indicadores de características, lo que proporciona un servicio único para almacenar el estado de la sesión de corta duración y las «memorias» a largo plazo en un almacén de datos. 

**Generación aumentada por recuperación (RAG)**

El RAG es el proceso de proporcionar up-to-date información de forma inmediata para LLMs mejorar la relevancia de las respuestas. La RAG reduce las alucinaciones y mejora la precisión de los hechos al basar los resultados en orígenes de datos del mundo real. Las aplicaciones RAG utilizan la búsqueda vectorial para obtener contenido semánticamente relevante de una base de conocimientos. La búsqueda vectorial de baja latencia proporcionada por la ElastiCache hace adecuada para implementar el RAG en cargas de trabajo que tienen grandes conjuntos de datos con millones de vectores o más. Además, la compatibilidad con las actualizaciones de índices vectoriales en línea ElastiCache es ideal para los asistentes con flujos de trabajo de carga que necesitan garantizar que cualquier dato cargado se pueda buscar inmediatamente. La tecnología RAG en los sistemas de inteligencia artificial de las agencias garantiza que los agentes dispongan de la up-to-date información necesaria para realizar acciones precisas. La búsqueda vectorial de baja latencia también es crucial para la RAG en los sistemas de IA agéntica, ya que una sola consulta puede desencadenar varias llamadas a LLM y acumular la latencia de la búsqueda vectorial subyacente. 

El siguiente diagrama ilustra un ejemplo de arquitectura que se utiliza ElastiCache para implementar una caché semántica, mecanismos de memoria y un RAG para mejorar una aplicación de IA generativa en producción.

![\[Diagrama de una búsqueda semántica realizada por un asistente de IA generativa.\]](http://docs.aws.amazon.com/es_es/AmazonElastiCache/latest/dg/images/vector-search-gen-ai1.png)


**Búsqueda semántica**

La búsqueda vectorial recupera los datos de texto, voz, imagen o vídeo más relevantes en función de la proximidad con el significado o las características. Esta capacidad permite que las aplicaciones de machine learning se basen en la búsqueda por similitud en diversas modalidades de datos, incluidos los motores de recomendación, la detección de anomalías, la personalización y los sistemas de gestión del conocimiento. Los sistemas de recomendación utilizan representaciones vectoriales para capturar patrones complejos en el comportamiento de los usuarios y las características de los elementos, lo que les permite sugerir el contenido más pertinente. La búsqueda vectorial ElastiCache es adecuada para estas aplicaciones debido a sus actualizaciones prácticamente en tiempo real y a su baja latencia, lo que permite realizar comparaciones de similitudes que ofrecen recomendaciones instantáneas y muy relevantes basadas en las interacciones de los usuarios en tiempo real.

## ElastiCache Testimonios de clientes
<a name="elasticache-use-cases-testimonials"></a>

Para obtener más información sobre cómo empresas como Airbnb, PBS, Esri y otras utilizan Amazon ElastiCache para hacer crecer sus negocios con una mejor experiencia de cliente, consulta [Cómo utilizan Amazon otros usuarios](https://aws.amazon.com/elasticache/testimonials/). ElastiCache

También puedes ver los [vídeos tutoriales](Tutorials.md#tutorial-videos) para ver otros casos de uso de ElastiCache los clientes.