¿Qué es Azure Cache for Redis?
Azure Cache for Redis proporciona un almacén de datos en memoria basado en el software de Redis. Redis mejora el rendimiento y la escalabilidad de las aplicaciones que usan almacenes de datos de back-end de manera intensiva. Es capaz de procesar grandes volúmenes de solicitudes de aplicación al mantener los datos a los que se accede con frecuencia en la memoria del servidor, donde se pueden realizar operaciones rápidas de lectura y escritura. Redis incorpora una solución crítica de almacenamiento de datos de baja latencia y alto rendimiento en las aplicaciones modernas.
Azure Cache for Redis ofrece tanto el producto de código abierto (OSS Redis) como el producto comercial de Redis Inc. (Redis Enterprise), como servicio administrado. Proporciona instancias de servidor Redis seguras y dedicadas, así como una compatibilidad completa con la API de Redis. Microsoft opera el servicio, que se hospeda en Azure, y todas las aplicaciones, tanto si están dentro como fuera de Azure, pueden usarlo.
Azure Cache for Redis se puede usar como una memoria caché de datos distribuidos o de contenido, un almacén de sesión, un agente de mensajes, entre otras opciones. Se puede implementar de forma independiente. O bien, se puede implementar junto con otros servicios de base de datos de Azure, como Azure SQL o Azure Cosmos DB.
Escenarios principales
Azure Cache for Redis mejora el rendimiento de las aplicaciones, ya que admite patrones de arquitectura de aplicaciones comunes. Estos son algunos de los más comunes:
Patrón | Descripción |
---|---|
Caché de datos | Las bases de datos suelen ser demasiado grandes para cargarlas directamente en una caché. Es habitual usar el patrón cache-aside para cargar datos en la caché solo cuando es necesario. Cuando el sistema realiza cambios en los datos, también puede actualizar la caché, que se distribuye luego a otros clientes. Además, el sistema puede establecer una fecha de expiración en los datos o usar una directiva de expulsión para desencadenar las actualizaciones de los datos en la memoria caché. |
Caché de contenido | Muchas páginas web se generan a partir de plantillas que usan contenido estático como encabezados, pies de página y banners. Estos elementos estáticos no deberían cambiar a menudo. El uso de una caché en memoria proporciona acceso rápido a contenido estático en comparación con los almacenes de datos de back-end. Este patrón reduce el tiempo de procesamiento y la carga del servidor, lo que permite que los servidores web tengan mayor capacidad de respuesta. Puede permitirle reducir el número de servidores necesarios para administrar las cargas. Azure Cache for Redis proporciona el proveedor de caché de salida de Redis, que admite este patrón con ASP.NET. |
Almacén de sesión | Este patrón se utiliza normalmente con carros de la compra y otros datos del historial de los usuarios que una aplicación web podría asociar con las cookies del usuario. El almacenamiento de demasiados datos en una cookie puede tener un efecto negativo en el rendimiento, ya que aumenta su tamaño y no hay que olvidar que se pasa y se valida con cada solicitud. Una solución habitual usa la cookie como clave cuando se consultan datos en una base de datos. Al usar una caché en memoria, como Azure Redis Cache, para asociar información a un usuario, resultará más rápido que su interacción con una base de datos relacional completa. |
Almacenamiento en cola de trabajos y mensajes | Las aplicaciones agregan a menudo tareas a una cola cuando las operaciones asociadas a la solicitud tardan tiempo en ejecutarse. Las operaciones con ejecuciones más largas se ponen en cola para procesarse en secuencia, a menudo por parte de otro servidor. Este método de aplazar trabajo se denomina puesta en cola de tareas. Azure Cache for Redis proporciona una cola distribuida que habilita este patrón en la aplicación. |
Distributed transactions | A veces, las aplicaciones requieren una serie de comandos en un almacén de datos de back-end para ejecutarse como una única operación atómica. El resultado de todos los comandos debe ser satisfactorio, o todos deben revertirse al estado inicial. Azure Cache for Redis admite la ejecución de un lote de comandos como transacción única. |
Versiones de Redis
Azure Cache for Redis admite las versiones 4.0.x y 6.0.x de OSS Redis. Hemos tomado la decisión de omitir Redis 5.0 para proporcionarle la versión más reciente. Anteriormente, Azure Cache for Redis mantenía una versión única de Redis. En el futuro, se podrá elegir entre una actualización de la versión principal más nueva y, al menos, una versión anterior estable. Se puede elegir la versión que funcione mejor para la aplicación.
Niveles de servicio
Azure Cache for Redis está disponible en los niveles siguientes:
Nivel | Descripción |
---|---|
Básico | Una memoria caché de OSS Redis que se ejecuta en una sola máquina virtual. Este nivel no tiene contrato de nivel de servicio (SLA) y es ideal para las cargas de trabajo de desarrollo y pruebas y no críticas. |
Estándar | Una memoria caché de OSS Redis que se ejecuta en dos máquinas virtuales en una configuración replicada. |
Premium | Memorias caché de OSS Redis de alto rendimiento. Este nivel ofrece mayor rendimiento, menor latencia, mejor disponibilidad y más características. Las memorias caché Prémium se implementan en máquinas virtuales más eficaces en comparación con las máquinas virtuales de las memorias caché de nivel Básico o Estándar. |
Enterprise | Memorias caché de alto rendimiento con la tecnología del software Redis Enterprise de Redis Inc. Este nivel admite módulos de Redis, incluidos RediSearch, RedisBloom, RedisJSON y RedisTimeSeries. Además, ofrece una disponibilidad aún mayor que el nivel Prémium. |
Enterprise Flash | Memorias caché de gran tamaño y rentabilidad basadas en el software Redis Enterprise de Redis Inc. Este nivel amplía el almacenamiento de datos de Redis en memoria no volátil, que es más barata que DRAM, en una máquina virtual. Reduce el costo total de memoria por GB. |
Comparación de características
En Precios de Azure Cache for Redis encontrará una comparación detallada de cada nivel. La tabla siguiente le ayuda a describir algunas de las características que admite cada nivel:
Descripción de la característica | Básico | Estándar | Premium | Enterprise | Enterprise Flash |
---|---|---|---|---|---|
Acuerdo de Nivel de Servicio (SLA) | No | Sí | Sí | Sí | Sí |
Cifrado de datos en tránsito | Sí | Sí | Sí | Sí | Sí |
Aislamiento de red | Sí | Sí | Sí | Sí | Sí |
Escalado | Sí | Sí | Sí | Vista previa | Vista previa |
Agrupación en clústeres de OSS | No | No | Sí | Sí | Sí |
Persistencia de los datos | No | No | Sí | Vista previa | Vista previa |
Redundancia de zona | No | Vista previa | Vista previa | Disponible | Disponible |
Replicación geográfica | No | No | Sí (pasivo) | Sí (activo) | Sí (activo) |
Registros de auditoría de conexión | No | No | Sí (basado en sondeos) | Sí (basado en eventos) | Sí (basado en eventos) |
Módulos de Redis | No | N.º | No | Sí | Vista previa |
Import/Export | No | No | Sí | Sí | Sí |
Reboot | Sí | Sí | Sí | No | No |
Actualización del canal y Programación de actualizaciones | Sí | Sí | Sí | No | N.º |
Nota:
El nivel Enterprise Flash actualmente solo admite el módulos RedisJSON y el módulo RediSearch (versión preliminar).
Elección del nivel correcto
Al elegir un nivel de Azure Cache for Redis, debe tener en cuenta las siguientes opciones:
- Memoria: los niveles Básico y Estándar ofrecen de 250 MB a 53 GB, el nivel Premium 6 GB a 1,2 TB; el nivel Enterprise 1 GB a 2 TB y el nivel Enterprise Flash 300 GB a 4,5 TB. Para crear instancias de caché de mayor tamaño, puede usar el escalado horizontal. Para más información, consulte Precios de Azure Cache for Redis.
- Rendimiento: las memorias caché de los niveles Premium y Enterprise se implementan en hardware que tiene procesadores más rápidos y ofrecen un mejor rendimiento en comparación con el nivel Básico o Estándar. Normalmente, el nivel Enterprise tiene el mejor rendimiento para la mayoría de las cargas de trabajo, especialmente con instancias de caché más grandes. Para obtener más información, consulte Pruebas de rendimiento.
- Núcleo específico para el servidor de Redis: Todas las memorias caché excepto C0 ejecutan vCPU dedicados. Los niveles Básico, Estándar y Premium se ejecutan código abierto Redis, que por diseño usa solo un subproceso para el procesamiento de comandos. En estos niveles, tener más vCPU normalmente mejora el rendimiento porque Azure Cache for Redis usa otras vCPU para el procesamiento de E/S o para los procesos del sistema operativo. Sin embargo, puede que agregar más vCPU por instancia no genere aumentos de rendimiento lineales. El escalado horizontal normalmente aumenta el rendimiento más que el escalado vertical en estos niveles. Los niveles Enterprise y Enterprise Flash se ejecutan en Redis Enterprise, que puede usar varias vCPU por instancia, lo que también puede aumentar significativamente el rendimiento en otros niveles. En el caso de los niveles flash Enterprise y Enterprise, se recomienda escalar verticalmente antes de escalar horizontalmente. Para obtener más información, consulte Uso de particiones y CPU.
- Rendimiento de la red: si tiene una carga de trabajo que requiere un rendimiento alto, el nivel Premium y el nivel Enterprise ofrecen más ancho de banda en comparación con los niveles Estándar o Básico. También dentro de cada nivel, las cachés de mayor tamaño tienen más ancho de banda debido a la máquina virtual subyacente que hospeda la memoria caché. Los límites de ancho de banda más altos ayudan a evitar la saturación de la red que provocan tiempos de espera en la aplicación. Para obtener más información, consulte Pruebas de rendimiento.
- Número máximo de conexiones de cliente: los niveles Prémium y Enterprise ofrecen el número máximo de clientes que se pueden conectar a Redis, con un número mayor de conexiones para memorias caché de mayor tamaño. La agrupación en clústeres aumenta la cantidad total de ancho de banda de red disponible para una caché en clúster.
- Alta disponibilidad: Azure Cache for Redis ofrece varias opciones de alta disponibilidad, y garantiza la disponibilidad de una memoria caché Estándar, Premium o Enterprise de acuerdo con nuestro Acuerdo de Nivel de Servicio. El Acuerdo de Nivel de Servicio solo cubre la conectividad para los puntos de conexión de la memoria caché. El Acuerdo de Nivel de Servicio no cubre la protección frente a la pérdida de datos. Se recomienda usar la característica de persistencia de datos de Redis en los niveles Prémium y Enterprise para aumentar la resistencia contra la pérdida de datos.
- Persistencia de los datos: Los niveles Prémium y Enterprise permiten conservar los datos de la caché en una cuenta de Azure Storage y en un disco administrado, respectivamente. Los problemas con la infraestructura subyacente podrían provocar una pérdida de datos. Se recomienda usar la característica de persistencia de datos de Redis en estos niveles para aumentar la resistencia contra la pérdida de datos. Azure Cache for Redis ofrece las opciones RDB y AOF (versión preliminar). La persistencia de los datos se puede habilitar mediante Azure Portal y la CLI de Azure. Para obtener información acerca del nivel Prémium, consulte Configuración de la persistencia de datos en el nivel Prémium de Azure Cache for Redis.
- Aislamiento de red: Las implementaciones de Azure Private Link y Virtual Network (VNet) proporcionan seguridad mejorada y aislamiento del tráfico para la instancia de Azure Cache for Redis. VNet le permite restringir aún más el acceso mediante directivas de control de acceso a la red. Para más información, consulte Azure Cache for Redis con Azure Private Link (versión preliminar pública) y Configuración de la compatibilidad de red virtual con el nivel Premium de Azure Cache for Redis.
- Los niveles Enterprise de los módulos de Redis admiten RediSearch, RedisBloom, RedisTimeSeries y RedisJSON. Estos módulos agregan nuevos tipos de datos y funcionalidad a Redis.
Puede escalar la memoria caché desde el nivel Básico hasta el nivel Premium después de crearla. Actualmente no se admite su reducción vertical a un nivel inferior. Para instrucciones detalladas acerca del escalado, consulte Cómo escalar Azure Cache for Redis y Cómo escalar: niveles Básico, Estándar y Premium.
Consideraciones especiales para los niveles Enterprise
Los niveles de Enterprise dependen de Redis Enterprise, una variante comercial de Redis de Redis Inc. Los clientes obtienen y pagan una licencia para este software a través de una oferta de Azure Marketplace. Azure Cache for Redis administra la adquisición de licencias para que esta tarea no tenga que hacerla aparte. Para realizar la compra en Azure Marketplace, debe cumplir los siguientes requisitos previos:
- La suscripción de Azure tiene un instrumento de pago válido. No se admiten los créditos de Azure ni las suscripciones gratuitas de MSDN.
- Su organización permite compras en Azure Marketplace.
- Si usa un Marketplace privado, debe contener la oferta Enterprise de Redis Inc.
Importante
El nivel Enterprise de Azure Cache for Redis requiere equilibradores de carga de red estándar que se cobran aparte de las propias instancias de caché. Actualmente, estos cargos los absorbe Azure Cache for Redis y no se pasan a los clientes. En el futuro, esto puede cambiar. Para más información, consulte los precios de Azure Load Balancer.
Si se configura una caché Enterprise para varias zonas de disponibilidad, Azure Cache for Redis absorbe los cargos de transferencia de datos y no se pasan a los clientes. Esto puede cambiar en el futuro, donde la transferencia de datos se facturaría según las tarifas de ancho de banda de red estándar.
Además, la persistencia de datos incorpora Managed Disks. El uso de estos recursos será gratuito durante la versión preliminar pública de la persistencia de datos de nivel Enterprise. Esto puede cambiar cuando la característica esté disponible con carácter general.
Disponibilidad por región
Azure Cache for Redis se expande continuamente a nuevas regiones. Para ver la disponibilidad en su región consulte Productos disponibles por región.
Contenido relacionado
- Creación de una caché en Redis de código abierto
- Creación de una caché de Redis Enterprise
- Uso de Azure Cache for Redis con una aplicación web de ASP.NET
- Uso de Azure Cache for Redis con .NET Core
- Uso de Azure Cache for Redis con .NET Framework
- Uso de Azure Cache for Redis con Node.js
- Uso de Azure Cache for Redis con Java
- Uso de Azure Cache for Redis con Python