Descripción general de importación y exportación

En esta página, se explica cómo funcionan las importaciones y exportaciones en Memorystore para Redis.

La función de importación y exportación usa la función nativa de instantáneas de RDB de Redis a fin de importar o exportar datos fuera de una instancia de Memorystore para Redis. El uso del formato nativo de RDB evita los compromisos a largo plazo y facilita el traslado de datos dentro de Google Cloud o fuera de Google Cloud. La importación y la exportación usa depósitos de Cloud Storage para almacenar archivos RDB.

El comportamiento de una instancia de Memorystore para Redis durante la exportación es muy similar al comando BGSAVE en Redis de código abierto. Las importaciones de Memorystore para Redis copiando tu archivo RDB en el directorio de datos de tu instancia.

A fin de obtener instrucciones para importar y exportar archivos RDB, consulta Importa datos a una instancia de Redis y Exporta datos desde una instancia de Redis.

Si quieres obtener instrucciones para programar exportaciones de RDB con Cloud Scheduler, consulta Programa exportaciones de bases de datos de Memorystore para Redis con Cloud Scheduler.

Comportamiento de las funciones de importación

  • Para obtener un rendimiento óptimo, debes importar desde los depósitos de Cloud Storage ubicados en la misma región que tu instancia de Redis.

  • Tu instancia de Redis no está disponible durante una operación de importación. Tu instancia estará disponible después de que finalice la operación de importación.

  • Si una importación se realiza correctamente, los datos existentes en la instancia se reemplazan por los datos del archivo RDB.

  • Si una importación falla por algún motivo, la instancia se pone en línea, pero los datos se pueden vaciar por completo. Puedes reintentar la importación con el mismo archivo RDB o puedes usar otro archivo RDB para restablecer los datos.

  • Tu instancia de Memorystore para Redis puede importar archivos RDB desde la misma versión de Redis y desde una versión anterior, pero no puede importar archivos RDB desde una versión más reciente.

  • Una operación de importación puede cancelarse, pero debes tener en cuenta que la cancelación da como resultado tu instancia que se recupera con una caché completamente limpia. Esto sucede con las instancias de nivel Básico y Estándar.

  • Una instancia solo puede importar copias de seguridad de versiones anteriores de Redis. Una instancia que ejecuta Redis 5.0 puede importar una RDB exportada de Redis 4.0, pero una instancia que ejecuta Redis 4.0 no puede importar una RDB desde Redis 5.0.

Comportamiento de las funciones de exportación

  • Puedes leer y escribir datos en tu instancia de Redis durante una operación de exportación. Sin embargo, no puedes realizar operaciones administrativas, como escalar, actualizar o configurar tu instancia.

  • La instancia puede experimentar una latencia mayor durante la exportación.

  • Para obtener un rendimiento óptimo, debes exportar tus copias de seguridad de RDB a los depósitos de Cloud Storage ubicados en la misma región que tu instancia de Redis.

  • Durante una exportación, el archivo RDB se guarda en un bucket de Cloud Storage que elijas.

  • Puedes cancelar una operación de exportación en cualquier momento. La cancelación no afecta los datos o la disponibilidad de una instancia.

    • Cuando se cancela una exportación, se borra el archivo RDB que se escribe en el bucket de Cloud Storage y se libera la memoria que usa el proceso BGSAVE.
  • Una exportación puede reemplazar un archivo existente con el mismo nombre sin permisos adicionales cuando se usa Cloud Console. Para exportar un archivo existente con gcloud, la cuenta de usuario necesita el permiso storage.objects.delete.

Exporta con una carga de escritura alta

Si ejecutas una exportación durante un período de carga de escritura alta tu instancia puede aumentar hasta 2 veces el uso de memoria, por lo que la operación de exportación fallará. Debes realizar operaciones de exportación durante los períodos de escritura bajos. Con el fin de supervisar cuántos datos de Redis se almacenan en tu instancia, puedescrear un panel para supervisar el uso de la memoria y supervisar las métricas de uso de memoria de la instancia con Google Cloud's operations suite.

La exportación de Memorystore para Redis usa la función BGSAVE de Redis para tomar una instantánea de los datos de una instancia. Cuando ejecutas BGSAVE, Redis bifurca un nuevo proceso secundario para tomar la instantánea. Redis usa la copia de escritura durante este proceso.

Esto significa que la bifurcación inicial asigna una cantidad de memoria adicional mínima, pero las páginas que cambia el tráfico de escritura del servidor de Redis se duplican. Por lo tanto, en períodos de buena escritura, en el peor de los casos, la huella de memoria de Redis se duplica, lo que hace que la operación de exportación falle.

Exporta durante una operación de BGSAVE

No puedes exportar mientras se ejecuta una operación de BGSAVE. Las instancias de nivel estándar de Memorystore para Redis a veces ejecutan operaciones de resincronización completas o "sincronizaciones completas" a fin de mantener la sincronización principal y la réplica. La resincronización completa usa el comando BGSAVE, que evita que Memorystorestore realice una exportación.

Para verificar si una operación de BGSAVE está en curso, consulta el extremo de la API redis.googleapis.com/persistence/rdb/bgsave_in_progress con el Explorador de métricas.

Para consultar las métricas de un recurso supervisado mediante el Explorador de métricas, haz lo siguiente:

  1. En Google Cloud Console, ve a Monitoring o usa el siguiente botón:
    Ir a Monitoring
  2. En el panel de navegación de Monitoring, haz clic en  Explorador de métricas.
  3. Selecciona la pestaña Configuración y, luego, ingresa o selecciona un Tipo de recurso y una Métrica.

Como alternativa, puedes usar tus propias herramientas de API de línea de comandos.

Permisos necesarios para importar y exportar

Un usuario necesita configurar permisos de IAM suficientes para importar o exportar archivos RDB. La configuración de permisos más sencilla es aplicar las funciones de IAM Administrador de Redis para Cloud Memorystore y Administrador de almacenamiento a la cuenta de usuario, aunque esta configuración puede ser inapropiada para algunas cuentas de usuario porque otorga permisos para crear, editar o borrar recursos a los que no debería tener acceso. Para obtener instrucciones sobre cómo configurar permisos mínimos restringidos, consulta Otorga permisos restringidos para importación y exportación.

Duración de las importaciones y exportaciones

La duración de la importación o exportación depende del tamaño de la instancia y del tamaño del conjunto de datos en la instancia. Según el tamaño, las importaciones y exportaciones pueden tardar desde unos minutos hasta algunas horas.

Por ejemplo, si importas o exportas una instancia de 10 GB con 8 GB de memoria usada, la operación puede tardar 5 minutos. Si importas o exportas una instancia de 120 GB con 100 GB de memoria usada, la operación puede tardar una hora.

Detén una importación o exportación

Para detener una importación o exportación, consulta las siguientes páginas:

Supervisa el progreso de la operación

No es posible realizar una estimación del tiempo mientras se realiza la importación y la exportación. Puedes verificar si la operación está en curso. Para ello, revisa la página de detalles de la instancia. Para ver la página de detalles de la instancia, haz clic en tu ID de instancia en la página de instancias de Memorystore para Redis.

También puedes supervisar el progreso de una operación de importación si ejecutas el siguiente comando:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Aquí:

  • [INSTANCE_ID] es el ID para tu instancia de Memorystore para Redis.
  • [REGION] es la región en la que se encuentra tu instancia.

El comando genera state: IMPORTING o state: READY como uno de los campos de descripción.

Depósitos de Cloud Storage no compatibles

Los depósitos de Cloud Storage de los pagos del solicitante no son compatibles con las importaciones y exportaciones de Memorystore.

Protege tus depósitos de Cloud Storage

Debes asegurarte de que tu bucket de Cloud Storage tenga las restricciones correctas para evitar el acceso no autorizado a la copia de seguridad de RDB de Redis que contiene. Consulta las Opciones de control de acceso de Cloud Storage para obtener información sobre cómo proteger tus depósitos de Cloud Storage.

Asegúrate de tener memoria suficiente para completar una exportación

Para evitar que la exportación genere una falta de memoria, debes tener un 50% de memoria libre en la instancia durante el proceso de exportación. Puede que esto no sea necesario todo el tiempo, según tu carga de escritura, pero tener un 50% de memoria libre garantiza que haya suficiente espacio libre para alojar la sobrecarga de copia en escritura, si muchas páginas son Se tocaron durante el proceso de exportación.

Si quieres comprender el uso actual de la memoria de tu instancia, configura una alerta del paquete de operaciones de Google Cloud para que te notifique cuando tu uso de memoria alcance un umbral personalizable. Además, debes configurar un panel de supervisión de la memoria con el paquete de operaciones de Google Cloud. Estas medidas te permiten comprender los patrones de uso de memoria de tus instancias. Comprender los patrones de uso de memoria te permite dimensionar correctamente tu instancia cuando exportas en intervalos regulares.

¿Qué sigue?