Compartir vía


Migración a instancias de Azure Cache for Redis o entre ellas

Importante

Azure Cache for Redis anunció su cronograma de retiro para todos los SKU. Se recomienda mover las instancias existentes de Azure Cache for Redis a Azure Managed Redis tan pronto como pueda.

Para obtener más información sobre la retirada:

En este artículo se describen varios escenarios de migración de Azure Cache for Redis. Puede migrar cachés de Redis de código abierto que se ejecutan de forma local o en máquinas virtuales (VM) en la nube o cachés hospedadas desde otras plataformas en la nube a Azure Cache for Redis.

También puede migrar una instancia de Azure Cache for Redis a otra instancia. Si solo necesita mover una caché de Azure Redis de una región de Azure a otra, consulte Traslado de instancias de Azure Cache for Redis a regiones diferentes.

Redis de código abierto se puede ejecutar en muchos entornos de proceso, como centros de datos locales privados o máquinas virtuales hospedadas en la nube. Otras plataformas de hospedaje como Amazon Web Services (AWS) hospedan servicios de caché de Redis como AWS ElastiCache. Normalmente, puede migrar estas cachés de Redis a Azure Cache for Redis con una interrupción o un tiempo de inactividad mínimos.

Opciones de migración

La migración de una caché a otra depende de dónde exista la memoria caché y de cómo interactúa la aplicación con ella. En la tabla siguiente se enumeran las estrategias de migración usadas con frecuencia.

Opción Ventajas Inconvenientes
Crear una nueva caché La más sencilla de implementar. Debe volver a rellenar los datos en la nueva memoria caché, lo que podría no funcionar con algunas aplicaciones.
Exporte e importe datos a través del archivo de base de datos de solo lectura (RDB). Compatible con cualquier caché de Redis. Los datos escritos en la caché existente después de generar el archivo RDB podrían perderse.
Escribir datos simultáneamente en dos memorias caché. Sin pérdida de datos ni tiempo de inactividad, sin operaciones de caché interrumpidas y pruebas más sencillas. Necesita dos memorias caché durante un período de tiempo prolongado.
Migrar datos mediante programación. Control total sobre cómo se mueven los datos. Requiere código personalizado.

Crear una nueva caché

Si las operaciones ininterrumpidas y la posible pérdida de datos no son problemas, la manera más fácil de mover datos a Azure Cache for Redis es crear una instancia de Azure Redis Cache y conectarla a ella. Por ejemplo, si usa Redis como una caché de búsqueda de registros de base de datos, puede volver a generar fácilmente la memoria caché desde cero. Este enfoque no es técnicamente una migración.

Los pasos generales para implementar esta opción son los siguientes:

  1. Cree una nueva instancia de Azure Cache for Redis. Opcionalmente, pruebe Azure Managed Redis.
  2. Actualice la aplicación para usar la nueva instancia de Azure Redis.
  3. Elimine la instancia de Redis anterior.

Exportación de datos a un archivo RDB e importación a Azure Cache for Redis

Redis de código abierto define un mecanismo estándar para tomar una instantánea del conjunto de datos en memoria de una caché y guardarlo en un archivo RDB que pueda leer cualquier caché de Redis. El nivel Azure Cache for Redis Premium admite la importación de datos en una instancia de caché a través de un archivo RDB. Puede usar el archivo RDB para transferir datos de una caché existente a Azure Cache for Redis.

Importante

El formato de archivo RDB puede cambiar entre versiones de Redis y podría no mantener la compatibilidad con versiones anteriores. La versión de Redis de la caché que exporte debe ser igual o inferior a la versión que proporciona Azure Cache for Redis.

Los pasos generales para implementar esta opción son los siguientes:

  1. Guarde una instantánea de la caché en Redis existente. Puede configurar Redis para guardar instantáneas periódicamente o guardar una manualmente mediante los comandos SAVE o BGSAVE . El archivo RDB se denomina dump.rdb de forma predeterminada y se encuentra en la ruta de acceso especificada en el archivo de configuración redis.conf .
  2. Cree una nueva instancia de Azure Cache for Redis de nivel Premium que sea al menos tan grande como la caché existente.
  3. Copie el archivo RDB a una cuenta de almacenamiento de Azure en la región en la que se encuentra la nueva caché. Puede usar AzCopy para esta tarea.
  4. Importe el archivo RDB en la nueva caché. También puede usar el cmdlet Import-AzRedisCache de PowerShell.
  5. Actualice la aplicación para que use la nueva instancia de caché.

Nota

Para migrar datos desde otra instancia de Azure Redis, primero exporte el archivo RDB desde esa instancia o use el cmdlet Export-AzRedisCache de PowerShell.

Escritura en dos cachés de Redis durante la migración

En lugar de mover datos entre cachés, puede establecer temporalmente la aplicación para escribir datos en una caché existente y otra nueva. La aplicación lee los datos de la memoria caché existente inicialmente. Cuando la nueva caché tiene suficientes datos, puede cambiar la aplicación a esa caché y retirar la antigua.

Por ejemplo, supongamos que usa Redis como almacenamiento de sesiones y las sesiones de la aplicación expiran después de siete días. Después de escribir en ambas memorias caché durante siete días, sabe que la nueva caché contiene toda la información de sesión no expirada y puede confiar de forma segura en ella desde ese momento. A continuación, puede retirar la memoria caché antigua.

Los pasos generales para implementar esta opción son los siguientes:

  1. Cree una nueva instancia de Azure Cache for Redis de nivel Premium que sea al menos tan grande como la caché existente.
  2. Modifique el código de la aplicación para escribir tanto en las instancias nuevas como en las originales.
  3. Siga usando los datos de la instancia original hasta que la nueva instancia se rellene lo suficiente con los datos.
  4. Actualice el código de la aplicación para que lea y escriba únicamente desde la nueva instancia.
  5. Elimine la instancia original.

Migración mediante programación

Puede crear una migración personalizada mediante programación leyendo datos de una caché existente y escribiendolos en Azure Cache for Redis. Por ejemplo, puede usar la herramienta redis-copy de código abierto para copiar datos de una instancia de Azure Redis a otra.

El código fuente puede ser una guía útil para escribir su propia herramienta de migración. También hay disponible una versión compilada .

Nota

Oficialmente, Microsoft no admite esta herramienta.

Los pasos generales para implementar esta opción son los siguientes:

  1. Cree una máquina virtual (VM) de Azure en la misma región que la caché existente. Si el conjunto de datos es grande, elija una máquina virtual eficaz para reducir el tiempo de copia.
  2. Cree una nueva instancia de Azure Cache for Redis y asegúrese de que está vacía. La redis-copy herramienta no sobrescribe ninguna clave existente en la memoria caché de destino.
  3. Use una aplicación como redis-copy para automatizar la copia de los datos de la caché de origen en la memoria caché de destino. El proceso de copia puede tardar un tiempo en función del tamaño del conjunto de datos.