Comportamiento del escalamiento de instancias

En esta página se describe cómo se comporta tu instancia de Memorystore para Redis durante el escalamiento. Para aprender a escalar una instancia de Redis, consulta Escalar instancias de Redis.

Según el nivel de la instancia, el escalamiento tiene implicaciones para el rendimiento y el almacenamiento de tu aplicación. También existen algunas limitaciones para escalar instancias según la cantidad de memoria que está actualmente en uso. En esta página se describe cómo escalar una instancia puede afectar a tu aplicación y cuándo puedes escalar una instancia.

Prácticas recomendadas para escalar una instancia

  • Recomendamos exportar los datos de la instancia antes de escalarla.

  • Para instancias de nivel Estándar, a fin de aumentar la velocidad y la confiabilidad de tu operación de escalamiento, escala tu instancia durante períodos de tráfico de instancia bajo. Para aprender a supervisar el tráfico de las instancias, consulta Supervisa las instancias de Redis.

  • Cuando se reduce la capacidad de una instancia de nivel Estándar, debes elegir un tamaño superior a la cantidad de datos que se almacenan o fallará el escalamiento.

    • Por ejemplo, si tienes una instancia de 10 GB con 5.5 GB de datos almacenados, puedes cambiar el tamaño de la instancia a un mínimo de 6 GB. La cantidad de almacenamiento que usa tu instancia es visible en la página de detalles en Cloud Console.

Comportamiento del escalamiento del nivel Básico

Las instancias de nivel Básico bloquean las lecturas y escrituras mientras la instancia cambia de tamaño a la capacidad deseada. Después de cambiar el tamaño de la instancia, se limpian todos los datos de la caché. Escala una instancia durante un período de tráfico de instancia bajo para minimizar el impacto en el rendimiento en tu aplicación.

Comportamiento del escalamiento del nivel Estándar

Escala instancias de nivel Estándar durante un período de baja actividad para minimizar el escalamiento del impacto en el rendimiento en tu aplicación.

Las instancias de nivel Estándar casi no experimentan tiempos de inactividad durante el proceso de escalamiento, ya que todas las instancias de nivel Estándar tienen un nodo principal y uno de réplica. Durante el escalamiento, la réplica primero cambia de tamaño y, luego, se sincroniza con la instancia principal. Una vez que la réplica nueva alcanza a la nueva instancia principal, la nueva instancia principal se conmuta por error a la nueva réplica.

Durante la conmutación por error, se cancelan las conexiones a la instancia. Las aplicaciones deben incorporar una lógica de reintento en el código para poder reconectarse con el nuevo nodo principal. Finalmente, se cambia el tamaño de la instancia de nodo principal anterior.

Luego de que el escalamiento se haya completado, pueden existir datos inactivos o incoherentes en la caché debido a la naturaleza asíncrona de la replicación de Redis. La aplicación debe ser lo suficientemente resiliente para controlar las incoherencias que surjan durante la conmutación por error.

Carga de escritura durante el escalamiento

Cuando escales una instancia de nivel Estándar, mantén la carga de escritura de la instancia al mínimo. Una carga de escritura alta puede hacer que el escalamiento demore mucho más tiempo en completarse y el proceso de escalamiento falle.

Claves vencidas

Cuando se escala una instancia de nivel Estándar, las claves vencidas no se sincronizan. Si tienes claves vencidas en tu instancia de Redis antes de escalar, tendrás menos claves luego del escalamiento.