sql >> Base de Datos >  >> NoSQL >> Redis

Cómo migrar datos de Redis™ mediante Redis-Shake

Migrar datos de ScaleGrid para Redis™* de un servidor a otro es un requisito común que escuchamos de nuestros clientes. Dos de las razones principales que escuchamos a menudo se deben a la migración de hardware o la necesidad de dividir los datos entre servidores.

Normalmente, desea migrar con un tiempo de inactividad mínimo mientras usa las herramientas estándar de Redis. En esta publicación de blog, lo guiaremos a través del proceso utilizando la herramienta de código abierto Redis-Shake. Desarrollado y mantenido por el equipo de NoSQL en el departamento de base de datos de Alibaba-Cloud, Redis-Shake le permite migrar fácilmente datos de Redis entre clústeres de Redis. Si bien esta guía está más dirigida a las implementaciones de ScaleGrid for Redis™*, esta guía también se puede usar para otros tipos de implementaciones de Redis con algunas modificaciones menores.

Sin más preámbulos, ¡comencemos con la guía de migración!

Requisitos previos

Necesitarás una máquina con Linux o Windows para realizar la migración. (Si es necesario, puede ser la máquina de origen o la de destino).

Algo importante que debe asegurarse antes de continuar es que Redis-Shake no es compatible con los clústeres habilitados para SSL a partir de ahora. Asegúrese de que tanto el clúster de origen como el de destino no estén habilitados para SSL.

Regla de cortafuegos

Asegúrese de haber creado una regla de firewall para permitir que su máquina Linux/Windows se conecte a sus clústeres de origen y de destino. Consulte este enlace para obtener más información sobre cómo configurar esto en ScaleGrid.

Descargar Redis-Shake

Descargue y descomprima Redis-Shake en la máquina Linux/Windows después de elegir la versión más reciente/estable de este enlace. También puede usar los siguientes comandos a continuación para descargar la última versión a partir de hoy (v2.1.1).

wget https://github.com/alibaba/RedisShake/releases/download/release-v2.1.1-20210903/release-v2.1.1-20210903.tar.gz
tar -xvzf release-v2.1.1-20210903.tar.gz
cd release-v2.1.1-20210903/

A continuación, le mostraremos dos casos de uso diferentes para Redis-Shake.

  • Migración de datos desde un Standalone y Master-Slave
  • Migración de datos en modo clúster

Migración de datos:independiente y maestro-esclavo

En esta sección, le mostraremos cómo migrar sus datos en estas diferentes configuraciones:

  • De autónomo a autónomo
  • Maestro-Esclavo a Maestro-Esclavo
  • Independiente a Maestro-Esclavo (y viceversa)

1. Recopilar información

Tome nota de la siguiente información de la pestaña Resumen en la página de detalles del clúster tanto de su clúster de origen como de destino:

  • Nombre de host :La cadena de conexión tiene el formato [nombre de host:puerto]. Debería verse así:EX-redms-00-redis-master.example.domain.io
    • (En el caso de un clúster Maestro-Esclavo, nos conectaremos al maestro).
  • Puerto :6379
  • Contraseña :Puede encontrar su contraseña y restablecerla desde la consola en Credenciales

2. Editar archivo de configuración

Abra su archivo “redis-shake.conf” en la carpeta principal y edite las siguientes variables:

source.type = standalone
source.address = <source_hostname>:6379
source.password_raw = <source_password>

target.type = standalone
target.address = <target_hostname>:6379
target.password_raw = <target_password>

3. Sincronizar datos

Ejecute el siguiente comando para sincronizar los datos entre el clúster de origen y el de destino:

$ ./redis-shake -type sync -conf redis-shake.conf

4. Esperar registros

Espere hasta que vea la siguiente información en los registros:

sync rdb done.

Esto significa que la sincronización completa se ha completado y comienza la sincronización incremental.

5. Detener sincronización incremental

Si +writeBytes=0 se ve durante mucho tiempo, eso significa que no se incrementan nuevos datos. Puede detener la sincronización incremental presionando Ctrl+C . Debería verse así:

sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0

6. Número de coincidencia de llaves

Ahora siga este enlace a nuestro documento de ayuda que lo ayuda a conectarse a ambos clústeres usando redis-cli y luego haga coincidir la cantidad de claves entre sus clústeres usando el info keyspace comando en ambos clústeres.

¡Y eso es todo! Ahora ha migrado correctamente los datos de un clúster a otro mediante Redis-Shake. Si tiene clústeres en modo de clúster, es posible que desee consultar la siguiente sección de esta guía para ver qué debe hacer si está ejecutando ese tipo de clúster.

Migración de datos:modo de clúster

En esta sección, le mostraremos cómo migrar datos de una implementación de Redis en modo clúster a otro clúster.

1. Recopilar información

Tome nota de la siguiente información de la pestaña Resumen en la página de detalles del clúster tanto de su clúster de origen como de destino:

  • Nombre de host :La cadena de conexión tiene el formato [nombre de host1:puerto], [nombre de host2:puerto], [nombre de host3:puerto]. Debería verse así:EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- maestro.ejemplo.dominio.io
  • Puerto :6379
  • Contraseña :Puede encontrar su contraseña y restablecerla desde la consola en Credenciales

2. Editar archivo de configuración

Abra su archivo “redis-shake.conf” en la carpeta principal y edite las siguientes variables:

source.type = cluster
source.address = <source_hostname1>:6379;<source_hostname2>:6379;<source_hostname3>:6379
source.password_raw = <source_password>

target.type = standalone
target.address = <target_hostname1>:6379;<target_hostname2>:6379;<target_hostname3>:6379
target.password_raw = <target_password>

3. Sincronizar datos

Ejecute el siguiente comando para sincronizar los datos entre el clúster de origen y el de destino:

$ ./redis-shake -type sync -conf redis-shake.conf

4. Esperar registros

Espere hasta que vea la siguiente información en los registros:

sync rdb done.

Esto significa que la sincronización completa se ha completado y comienza la sincronización incremental.

5. Detener sincronización incremental

Si +writeBytes=0 se ve durante mucho tiempo, eso significa que no se incrementan nuevos datos. Puede detener la sincronización incremental presionando Ctrl+C . Debería verse así:

sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0

6. Número de coincidencia de llaves

Ahora siga este enlace a nuestro documento de ayuda que lo ayuda a conectarse a ambos clústeres usando redis-cli y luego haga coincidir la cantidad de claves entre sus clústeres usando el info keyspace comando en ambos clústeres.

¡Y eso es todo! Ahora ha migrado correctamente los datos de un clúster en el modo de clúster a otro mediante Redis-Shake. Para obtener más información sobre Redis-Shake y sus capacidades, visite su página de GitHub para obtener más información y obtener la última versión.

¿Interesado en aprender más sobre ScaleGrid?

Para obtener más información sobre cómo ScaleGrid Hosting for Redis™* puede ayudarlo a administrar sus bases de datos, consulte nuestra página ScaleGrid Service for Redis™. Vea cómo el alojamiento de ScaleGrid para Redis™ puede permitirle concentrarse más en desarrollar su producto y menos en administrar bases de datos.

*Redis es una marca comercial de Redis Labs Ltd. Cualquier derecho sobre la misma está reservado a Redis Labs Ltd. Cualquier uso por parte de ScaleGrid es solo para fines de referencia y no indica ningún patrocinio, respaldo o afiliación entre Redis y ScaleGrid.