En esta página, se explica cómo la arquitectura de Memorystore for Redis Cluster proporciona y admite la alta disponibilidad (HA). En esta página, también se explica cómo puedes mejorar el rendimiento y la estabilidad del clúster con las configuraciones de HA que recomendamos.
Para obtener más información sobre las consideraciones específicas de la región, consulta Geografía y regiones.
Alta disponibilidad
Memorystore for Redis Cluster se basa en una arquitectura de alta disponibilidad en la que tus clientes acceden directamente a las VMs administradas de Memorystore for Redis Cluster. Tus clientes se conectan a direcciones de red de fragmentos individuales, como se describe en Conéctate a una instancia de Memorystore for Redis Cluster.
La conexión directa a los fragmentos proporciona los siguientes beneficios:
La conexión directa evita cualquier punto único de falla, ya que cada fragmento está diseñado para fallar de forma independiente. Por ejemplo, si el tráfico de varios clientes sobrecarga una ranura (fragmento de espacio de claves), la falla del fragmento limita el impacto al fragmento responsable de entregar la ranura.
La conexión directa evita los saltos intermedios, lo que minimiza el tiempo de ida y vuelta (latencia del cliente) entre tu cliente y la VM de Redis.
Parámetros de configuración recomendados
Te recomendamos que crees instancias multizonales con alta disponibilidad en lugar de instancias zonales únicas debido a la mayor confiabilidad que proporcionan. Sin embargo, si decides aprovisionar una instancia sin réplicas, te recomendamos que elijas una instancia de una sola zona. Para obtener más información, consulta Cuándo usar un clúster de una sola zona.
Para habilitar la alta disponibilidad en tu instancia, debes aprovisionar al menos 1 réplica por cada fragmento. Puedes hacerlo cuando creas la instancia o puedes ajustar la cantidad de réplicas a, al menos, 1 réplica por fragmento. Las réplicas proporcionan conmutación por error automática durante el mantenimiento planificado y las fallas inesperadas de fragmentos.
Te recomendamos que configures tu cliente según las instrucciones que se indican en Prácticas recomendadas para clientes de Redis. Usar las prácticas recomendadas permite que tu cliente de Redis de código abierto controle de forma automática y correcta el rol (conmutaciones por error automáticas) y los cambios en la asignación de ranuras (reemplazo de nodos, ajuste de la escala horizontal o vertical de los consumidores) para tu clúster sin tiempo de inactividad.
Réplicas
Una instancia de Memorystore for Redis Cluster con alta disponibilidad es un recurso regional. Esto significa que las VMs principales y de réplica de las particiones se distribuyen en varias zonas para protegerse contra una interrupción zonal. Memorystore for Redis Cluster admite instancias con entre 0 y 5 réplicas por fragmento.
Puedes usar réplicas para aumentar la capacidad de procesamiento de lectura mediante el escalamiento de las lecturas.
Para ello, debes usar el comando READONLY para establecer una conexión que permita que tu cliente lea desde las réplicas. Para obtener más detalles sobre la lectura desde réplicas, consulta Cómo escalar con Redis Cluster.
Ejemplo de clúster con 0 réplicas por fragmento

Ejemplo de clúster con 1 réplica por fragmento

Ejemplo de clúster con varias réplicas por fragmento

Conmutación por error automática
Las conmutaciones por error automáticas dentro de una partición pueden ocurrir debido a mantenimiento o a una falla inesperada del nodo principal. Durante una conmutación por error, una réplica se promueve para que sea la principal. Puedes configurar réplicas de forma explícita. El servicio también puede aprovisionar temporalmente réplicas adicionales durante el mantenimiento interno para evitar cualquier tiempo de inactividad.
Las conmutaciones por error automáticas evitan la pérdida de datos durante las actualizaciones de mantenimiento. Para obtener más información sobre el comportamiento de la conmutación por error automática durante el mantenimiento, consulta Comportamiento de la conmutación por error automática durante el mantenimiento.
Duración de la conmutación por error y la reparación de nodos
Las conmutaciones por error automáticas pueden tardar decenas de segundos en el caso de eventos no planificados, como una falla en el proceso del nodo principal o una falla de hardware. Durante este tiempo, el sistema detecta la falla y elige una réplica para que sea la nueva instancia principal.
La reparación de nodos puede tardar varios minutos en que el servicio reemplace el nodo con errores. Esto se aplica a todos los nodos principales y de réplica. En el caso de las instancias que no tienen alta disponibilidad (no se aprovisionan réplicas), la reparación de un nodo principal con errores también lleva tiempo, del orden de minutos.
Comportamiento del cliente durante una conmutación por error no planificada
Es probable que se restablezcan las conexiones del cliente según la naturaleza de la falla. Después de la recuperación automática, puedes volver a intentar las conexiones con retirada exponencial para evitar sobrecargar los nodos principales y de réplica.
Es posible que los clientes que usan réplicas para la capacidad de procesamiento de lectura experimenten una degradación temporal en la capacidad hasta que se reemplace automáticamente el nodo con errores.
Escrituras perdidas
Durante una conmutación por error que se produce debido a una falla inesperada, es posible que se pierdan las escrituras confirmadas debido a la naturaleza asíncrona del protocolo de replicación de Redis.
Las aplicaciones cliente pueden aprovechar el comando WAIT de Redis para mejorar la seguridad de los datos en el mundo real. Es un enfoque de mejor esfuerzo que conlleva compensaciones, como se explica en la documentación del comando WAIT de Redis.
Impacto en el keyspace de una interrupción en una sola zona
En esta sección, se describe el impacto de una interrupción en una sola zona en una instancia de Memorystore for Redis Cluster.
Instancias de varias zonas
Instancias con HA: Si una zona sufre una interrupción, todo el espacio de claves está disponible para lecturas y escrituras, pero, como algunas réplicas de lectura no están disponibles, se reduce la capacidad de lectura. Te recomendamos que aprovisiones en exceso la capacidad del clúster para que la instancia tenga suficiente capacidad de lectura en el caso poco probable de una interrupción en una sola zona. Una vez que finaliza la interrupción, se restablecen las réplicas en la zona afectada y la capacidad de lectura del clúster vuelve a su valor configurado. Para obtener más información, consulta Patrones de apps escalables y confiables.
Instancias que no son de HA (sin réplicas): Si una zona tiene una interrupción, la parte del espacio de claves que se aprovisiona en la zona afectada se somete a un vaciado de datos y no está disponible para escrituras o lecturas durante la interrupción. Una vez que finaliza la interrupción, se restablecen los servidores principales de la zona afectada y la capacidad del clúster vuelve a su valor configurado.
Instancias de zona única
- Instancias con alta disponibilidad y sin alta disponibilidad: Si la zona en la que se aprovisiona la instancia tiene una interrupción, el clúster no estará disponible y se borrarán los datos. Si se produce una interrupción en otra zona, el clúster continúa entregando solicitudes de lectura y escritura. Una vez que finaliza la interrupción, se restablece la capacidad configurada del clúster.
Prácticas recomendadas
En esta sección, se describen las prácticas recomendadas para la alta disponibilidad y las réplicas.
Cómo agregar una réplica
Para agregar una réplica, se requiere una instantánea de RDB. Las instantáneas de RDB usan una bifurcación de procesos y un mecanismo de "copia al escribir" para tomar una instantánea de los datos del nodo. Según el patrón de escrituras en los nodos, la memoria utilizada de los nodos aumenta a medida que se copian las páginas a las que se accede con las escrituras. El espacio en memoria puede ser hasta el doble del tamaño de los datos en el nodo.
Para asegurarte de que los nodos tengan suficiente memoria para completar la instantánea, mantén o establece maxmemory en el 80% de la capacidad del nodo, de modo que el 20% se reserve para la sobrecarga. Esta sobrecarga de memoria, además de las instantáneas de supervisión, te ayuda a administrar tu carga de trabajo para que las instantáneas se realicen correctamente. Además, cuando agregues réplicas, reduce el tráfico de escritura lo más posible. Para obtener más información, consulta Supervisa un clúster con una carga de escritura alta.