Cómo migrar datos de Redis a una base de datos administrada por DigitalOcean

Introducción
Cuando se busca migrar datos de una instancia de Redis a otra, hay varios métodos que se pueden emplear, como la replicación o la creación de instantáneas. Sin embargo, las migraciones pueden volverse más complicadas cuando se trasladan datos a una instancia de Redis administrada por un proveedor de la nube, ya que las bases de datos administradas suelen limitar el control que se tiene sobre la configuración de la base de datos.
En este tutorial se describe un método que puede utilizar para migrar datos a una instancia de Redis administrada por DigitalOcean. El método implica la creación de un script de Bash que utiliza migrate
el comando interno de Redis para pasar datos de forma segura a través de un túnel TLS configurado con stunnel. Esta guía también repasa algunas otras estrategias de migración de uso común y por qué son problemáticas al migrar a una base de datos administrada por DigitalOcean.
Prerrequisitos
Para completar este tutorial, necesitarás:
- Un servidor con Ubuntu 18.04. Este servidor debe tener un usuario configurado con privilegios administrativos y un firewall configurado con
ufw
. Para configurar este entorno, siga nuestra guía de configuración inicial de servidores para Ubuntu 18.04. - Versión de Redis4.0.7o una versión más reciente instalada en su servidor. Para configurarlo, siga el paso 1 de nuestra guía sobre cómo instalar y proteger Redis en Ubuntu 18.04.
- Una instancia de Redis administrada por DigitalOcean. Para aprovisionar una, consulte nuestra Documentación del producto Redis administrado.
- Stunnel, un proxy de código abierto que se utiliza para crear túneles TLS entre máquinas, instalado en su servidor y configurado para mantener una conexión segura con su base de datos Redis administrada. Esto es necesario porque las bases de datos administradas de DigitalOcean requieren que las conexiones se realicen de forma segura a través de TLS. Complete nuestro tutorial sobre Cómo conectarse a una instancia Redis administrada a través de TLS con Stunnel y redis-cli para configurarlo. Sin embargo, tenga en cuenta que no necesita instalar el
redis-tools
paquete en el Paso 1, ya que ya lo habrá instaladoredis-cli
cuando instaló Redis en el tutorial de requisitos previos anterior.
Nota: Para que todo quede más claro, en esta guía nos referiremos a la instancia de Redis alojada en su servidor Ubuntu como la “fuente”. Asimismo, nos referiremos a la instancia administrada por DigitalOcean como el “destino” o la “base de datos administrada”.
Aspectos a tener en cuenta al migrar datos de Redis a una base de datos administrada
Existen varios métodos que puede emplear para migrar datos de una instancia de Redis a otra. Sin embargo, algunos de estos enfoques presentan problemas cuando migra datos a una instancia de Redis administrada por DigitalOcean.
Por ejemplo, puede utilizar la replicación para convertir su instancia de Redis de destino en una copia exacta de la de origen. Para ello, debe conectarse al servidor de Redis de destino y ejecutar el replicaof
comando con la siguiente sintaxis:
- replicaof source_hostname_or_ip source_port
Esto hará que la instancia de destino replique todos los datos almacenados en la fuente sin destruir ningún dato que se haya almacenado previamente en ella. A continuación, deberá promover la réplica para que vuelva a ser una instancia principal con el siguiente comando:
- replicaof no one
Otro método para migrar datos de Redis es tomar una instantánea de los datos almacenados en la instancia de origen con los comandos save
o de Redis bgsave
. Ambos comandos exportan la instantánea a un archivo que termina en .rdb
, que luego transferirías al servidor de destino. Después de eso, reiniciarías el servicio Redis para que pueda cargar los datos.
Sin embargo, cada uno de estos tres comandos ( replicaof
, save
, y bgsave
) están deshabilitados en las bases de datos administradas de DigitalOcean. Estos, entre otros comandos deshabilitados, requieren privilegios avanzados o acceso al sistema de archivos subyacente del servidor de base de datos administrada, lo que los hace poco prácticos para una solución de base de datos administrada. Debido a esto, DigitalOcean, al igual que otros proveedores de bases de datos administradas, restringe el acceso a estos comandos, lo que hace que los métodos de migración asociados sean imposibles.
Debido a que las bases de datos administradas de DigitalOcean no permiten la replicación ni la creación de instantáneas como medios para migrar datos, este tutorial utilizará en su lugar migrate
el comando de Redis para mover datos desde el origen al destino. El migrate
comando está diseñado para mover solo una clave a la vez, pero este tutorial utilizará un script de Bash para migrar una base de datos Redis completa de manera automática.
Paso 1 (opcional): carga de la instancia de origen de Redis con datos de muestra
Este paso opcional implica cargar la instancia de origen de Redis con algunos datos de muestra para que pueda experimentar con la migración de datos a su base de datos de Redis administrada. Si ya tiene datos que desea migrar a su instancia de destino, puede avanzar al paso 2.
Para comenzar, ejecute el siguiente comando para acceder a su servidor Redis:
- redis-cli
Si ha configurado su servidor Redis para requerir autenticación de contraseña, ejecute el auth
comando seguido de su contraseña de Redis:
- auth password
A continuación, ejecute los siguientes comandos. Estos crearán una serie de claves que contienen cadenas, además de una clave que contiene un hash, otra que contiene una lista y otra que contiene un conjunto:
- mset string1 "Redis" string2 "is" string3 "fun!"
- mset string4 "Redis" string5 "is" string6 "fast!"
- mset string7 "Redis" string8 "is" string9 "feature-rich!"
- mset string10 "Redis" string11 "has" string12 "fantastic documentation!"
- mset string13 "Redis" string14 "is" string15 "free and open-source!"
- mset string16 "Redis" string17 "has many" string18 "data types."
- mset string19 "Redis" string20 "allows" string21 "strings."
- hmset hash1 field1 "Redis" field2 "allows" field3 "hashes."
- rpush list1 "Redis" "also" "allows" "lists."
- sadd set1 "It" "even" "allows" "sets."
Además, ejecute los siguientes expire
comandos para proporcionar a algunas de estas claves un tiempo de espera. Esto las hará volátiles, lo que significa que Redis las eliminará después de la cantidad de tiempo especificada, 7500
en segundos:
- expire string2 7500
- expire hash1 7500
- expire set1 7500
Con eso, tienes algunos datos de ejemplo que puedes exportar a tu instancia de Redis de destino. Puedes dejar el redis-cli
mensaje abierto por ahora, ya que ejecutarás algunos comandos más desde él en el siguiente paso para realizar una copia de seguridad de estos datos.
Paso 2: Realice una copia de seguridad de sus datos
Anteriormente, en este tutorial se analizó el uso del bgsave
comando Redis para tomar una instantánea de una base de datos de Redis y migrarla a otra instancia. Si bien no lo usaremos bgsave
como un medio para migrar datos de Redis, lo usaremos aquí para realizar una copia de seguridad de los datos en caso de que encontremos un error durante el proceso de migración.
Si aún no lo tiene abierto, comience abriendo la interfaz de línea de comandos de Redis:
- redis-cli
Además, si ha configurado su servidor Redis para requerir autenticación de contraseña, ejecute el auth
comando seguido de su contraseña de Redis:
- auth password
A continuación, ejecute el bgsave
comando. Esto creará una instantánea de su conjunto de datos actual y la exportará a un archivo de volcado cuyo nombre termina en .rdb
:
- bgsave
Nota: como se mencionó en la sección anterior Aspectos a tener en cuenta, puede tomar una instantánea de su base de datos Redis con los comandos save
o bgsave
. El motivo por el que utilizamos el bgsave
comando aquí es que save
se ejecuta de forma sincrónica, lo que significa que bloqueará a cualquier otro cliente conectado a la base de datos. Por este motivo, la save
documentación del comando recomienda que este comando casi nunca se ejecute en un entorno de producción.
En su lugar, sugiere utilizar el bgsave
comando, que se ejecuta de forma asincrónica. Esto hará que Redis bifurque la base de datos en dos procesos: el proceso principal seguirá prestando servicio a los clientes mientras que el secundario guardará la base de datos antes de salir.
Tenga en cuenta que si los clientes agregan o modifican datos mientras la bgsave
operación se ejecuta o después de que finalice, estos cambios no se capturarán en la instantánea.
A continuación, puedes cerrar la conexión a tu instancia de Redis ejecutando el exit
comando:
- exit
Puede encontrar este archivo de volcado en el directorio de trabajo de su instalación de Redis. Si no está seguro de cuál es este directorio, puede comprobarlo abriendo el archivo de configuración de Redis con su editor de texto preferido. Aquí, utilizaremos nano
:
- sudo nano /etc/redis/redis.conf
Navegue hasta la línea que comienza con dbfilename
. Se verá así de manera predeterminada:
/etc/redis/redis.conf
. . .# The filename where to dump the DBdbfilename dump.rdb. . .
Esta directiva define el archivo al que Redis exportará las instantáneas. La siguiente línea (después de los comentarios) tendrá el siguiente aspecto:
/etc/redis/redis.conf
. . .dir /var/lib/redis. . .
La dir
directiva define el directorio de trabajo de Redis donde se almacenan las instantáneas de Redis. De manera predeterminada, está configurado /var/lib/redis
como se muestra en el ejemplo.
Cierra el redis.conf
archivo. Suponiendo que no hayas realizado ningún cambio en el archivo, puedes hacerlo presionando CTRL+X
.
Luego, enumera el contenido de tu directorio de trabajo de Redis para confirmar que contiene el archivo de volcado de datos exportado:
- sudo ls /var/lib/redis
Si el archivo de volcado se exportó correctamente, lo verá en la salida de este comando:
Outputdump.rdb
Una vez que haya confirmado que realizó correctamente una copia de seguridad de sus datos, puede comenzar el proceso de migración a su base de datos administrada.
Paso 3: creación del script de migración
Recuerda que esta guía utiliza migrate
el comando interno de Redis para mover las claves una por una desde la base de datos de origen a la de destino. Sin embargo, a diferencia de los pasos anteriores de este tutorial, no ejecutarás este comando desde el redis-cli
símbolo del sistema. En su lugar, escribirás un script de Bash que, cuando se invoque, te permitirá migrar todas las claves desde tu instancia de origen de Redis a la instancia administrada con un solo comando.
Nota: Si tiene clientes que escriben datos en su instancia de Redis de origen, este sería un buen momento para configurarlos para que también escriban datos en su base de datos administrada. De esta manera, puede migrar los datos existentes desde la fuente a su destino sin perder ninguna escritura que se produzca después de la migración.
Además, tenga en cuenta que este script de migración no reemplazará ninguna clave existente en la base de datos de destino a menos que una de las claves existentes tenga el mismo nombre que la clave que está migrando.
Abra un nuevo archivo llamado redis-migrate.sh
:
- nano redis-migrate.sh
En la parte superior del archivo, agregue un shebang. Se trata de una secuencia de caracteres que le permite a su servidor saber que el script debe ejecutarse con el bash
shell:
redis-migrate.sh
#!/bin/bash
set
Permite configurar o desconfigurar determinadas variables ambientales. Esto será útil para este script, ya que lo utilizaremos para protegernos de algunos posibles problemas.
Debajo del shebang, agrega el siguiente set
comando:
redis-migrate.sh
#!/bin/bashset -euo pipefail
Esto incluye la e
opción que hará que el script salga inmediatamente si cualquier comando dentro de él sale con un estado distinto de cero, y la u
opción. El indicador set
's u
le indicará al script que trate cualquier variable no establecida como errores que lo obligarán a salir. Esto será útil para nuestros propósitos, ya que este script requerirá la entrada del usuario.
La última bandera o
le permite configurar una variedad de parámetros. Aquí, configure la pipefail
opción. En los sistemas *nix, las barras verticales ( |
) se utilizan para pasar la salida de un comando como entrada a otro. Por ejemplo:
echo “Carpe diem, quam minimum credula postero.” | grep diem
Si el comando a la izquierda de una tubería (en este ejemplo, el echo
comando) fallara, el mensaje de error que provoca se enviaría igualmente al comando a la derecha de la tubería (el grep
comando) porque un mensaje de error sigue siendo una salida válida. La pipefail
opción cambia este comportamiento y hace que el script se cierre si algún comando en una cadena de tuberías provoca un error.
Este script utilizará scan
el comando de Redis para iterar sobre cada clave de su base de datos. Sin embargo, scan
solo puede iterar sobre una base de datos a la vez, lo que significa que si tiene claves almacenadas en varias bases de datos, debe poder especificar qué base de datos desea escanear y luego migrar. De manera similar, el migrate
comando que utilizará este script requiere que especifique la base de datos lógica en la instancia de destino a la que desea migrar los datos.
Por este motivo, este script requerirá que los usuarios pasen números que representen tanto la base de datos de origen como la base de datos de destino en la instancia de Redis administrada como argumentos de línea de comandos. Para ello, agregue la siguiente if/then
declaración:
redis-migrate.sh
#!/bin/bashset -euo pipefailif [ "$#" -lt 2 ]then echo "Migrate Redis keys to a DigitalOcean Managed Database" echo "Usage: $0 [source database] [target database]" exit 1fi
Esta instrucción verifica si el número de argumentos pasados al script es menor que 2. Si es así, imprime un mensaje que recuerda al usuario la función del script y cómo invocarlo correctamente. Luego sale inmediatamente y la if/then
instrucción se cierra con fi
.
A continuación, defina las siguientes variables:
sourcedb
: El script utilizará esta variable para hacer referencia a la base de datos lógica de Redis en la instancia de origen. Establézcala en el primer argumento que se pasa al script cuando se invoca (${1}
)targetdb
:De manera similar, el script utilizará esta variable para hacer referencia a la base de datos lógica en la instancia de destino. Establezca esta variable en el segundo argumento que se pasa al script (${2}
)cursor
En breve, repasaremos cómo el script utiliza esta variable. Por ahora, simplemente configúrela en-1
.
Las nuevas líneas que declaran estas variables deberían verse así:
redis-migrate.sh
. . . exit 1fisourcedb=${1}targetdb=${2}cursor=-1
Las instancias administradas de Redis generalmente requieren que los usuarios envíen una contraseña para autenticarse. En lugar de codificar las contraseñas en este script, agregue las siguientes líneas resaltadas para configurar un par de mensajes que le pedirán al usuario que ingrese las contraseñas para las instancias locales y administradas de Redis.
La primera y la tercera de estas nuevas líneas utilizan la función incorporada de Bash read
. read
Leerán una sola línea de la entrada estándar y asignarán ese valor a un nombre de variable que se le pasa como argumento. Ambas líneas incluyen la -s
opción , que evita read
que se repita la entrada en la terminal, lo que es importante para información sensible como contraseñas. Ambas también incluyen la -p
opción , que le permite mostrar la cadena inmediatamente después como un mensaje antes de intentar leer cualquier entrada.
La primera línea le solicitará que ingrese la contraseña de su instancia local de Redis y la tercera le solicitará que ingrese la contraseña de su instancia administrada de Redis. La línea entre ellas imprimirá una línea en blanco, lo que hará que el segundo mensaje aparezca en una nueva línea. Esto ayudará a que ambos mensajes sean más legibles en una terminal:
redis-migrate.sh
. . .sourcedb=${1}targetdb=${2}cursor=-1read -s -p "Enter your local Redis password: " localpwecho ""read -s -p "Enter your managed Redis password: " managedpw
A continuación, agregue el siguiente while
bucle. Esto verifica si la cursor
variable definida anteriormente no es igual a 0
. Si es así, ejecutará cada comando dentro del bucle hasta que llegue a done
:
redis-migrate.sh
. . .cursor=-1read -s -p "Enter your local Redis password: " localpwecho ""read -s -p "Enter your managed Redis password: " managedpwwhile [[ "$cursor" -ne 0 ]]; dodone
Debido a cursor
que se inicializó en -1
, eso significa que este while
bucle siempre se ejecutará al menos una vez.
Dentro del while
bucle, agregue la siguiente declaración resaltada if/then
. Esta verifica si la cursor
variable es igual a -1
y, si es así, la establece como igual a 0
:
redis-migrate.sh
. . .while [[ "$cursor" -ne 0 ]]; do if [[ "$cursor" -eq -1 ]] then cursor=0 fidone
El comando de Redis scan
permite algunas opciones, pero solo requiere un argumento: un valor de cursor. Si imagina una base de datos de Redis como una lista larga de claves ordenadas aleatoriamente, un valor de cursor 0
indica scan
que se debe comenzar a iterar desde la primera clave de la lista. Cada vez scan
que se ejecuta, devolverá un nuevo cursor como la primera línea de su salida con una cantidad limitada de claves individuales en cada línea subsiguiente, generalmente entre diez y veinte.
Para recorrer cada clave de una base de datos, debe seguir llamando a scan
, reemplazando cada vez el cursor con el cursor actualizado de la salida de la llamada anterior hasta que devuelva un cursor de 0
. Esto indica que scan
ha completado una iteración completa.
Por eso lo inicializamos cursor
con -1
solo para restablecerlo inmediatamente 0
con este agregado: para realizar una iteración completa, este script deberá llamar al scan
comando varias veces, usando 0
como cursor inicial y luego, en cada llamada posterior, el cursor devuelto por la iteración anterior. El bucle solo debe detenerse cuando la última scan
llamada devuelva un cursor de 0
.
Tenga en cuenta que scan
no devuelve valores de cursor negativos, por lo que inicializarlo cursor
no -1
causará ningún problema.
Después de la if/then
declaración, pero aún antes de done
, agregue una línea que defina una nueva variable local, reply
, y establezca su valor en la salida de un scan
comando ejecutado con el redis-cli
cliente.
Este redis-cli
comando incluye la -a
opción seguida de la localpw
variable. Suponiendo que el usuario ingrese la contraseña correcta para la instancia local de Redis cuando se le solicite, el -a
indicador usará esa contraseña aquí para autenticarse. También incluye el -n
indicador. Esto indica redis-cli
a cuál de las bases de datos lógicas de Redis conectarse, según lo definido por la sourcedb
variable:
redis-migrate.sh
. . .while [[ "$cursor" -ne 0 ]]; do if [[ "$cursor" -eq -1 ]] then cursor=0 fi reply=$(redis-cli -a "$localpw" -n "$sourcedb" SCAN "$cursor")done
A continuación, agregue otra if/then
instrucción. Esta prueba si la reply
variable es un valor nulo y, si no lo es, ejecuta todas las instrucciones entre then
y fi
:
redis-migrate.sh
. . .while [[ "$cursor" -ne 0 ]]; do if [[ "$cursor" -eq -1 ]] then cursor=0 fi reply=$(redis-cli -a "$localpw" -n "$sourcedb" SCAN "$cursor") if [ -n "$reply" ]; then fidone
Dentro de esta if/then
declaración, agregue las siguientes líneas. La primera muestra el contenido almacenado en la reply
variable y luego lo envía como entrada a un tail
comando.
Podrías pasar el resultado echo "$reply"
directamente al siguiente while
bucle, pero esto también canalizaría la primera línea que, como se mencionó anteriormente, contiene el valor del cursor actualizado. Esto haría que Redis intentara migrar una clave inexistente, lo que podría causar un error o, al menos, trabajo adicional innecesario para tu servidor.
Para solucionar este problema, enviamos el reply
contenido al tail
comando que incluye el -n +2
argumento. Esto indica tail
que hay que empezar a leer desde la segunda línea antes de enrutar cada línea al while
bucle.
Este while
bucle lee cada línea de reply
una en una. Cada vez que lee una línea, asigna el contenido de esa línea a una nueva variable, key
. El bucle ejecutará los comandos entre las instrucciones do
y done
hasta que haya leído todas las líneas.
Tenga en cuenta la inclusión de IFS=
. Esta es la abreviatura de Internal Field Separator , que es una variable que define el carácter o el conjunto de caracteres que se utilizan para separar un patrón. Al dejarlo en blanco, se garantiza que el proceso read
se dividirá reply
al final de cada línea:
redis-migrate.sh
. . .while [[ "$cursor" -ne 0 ]]; do. . . if [ -n "$reply" ]; then echo "$reply" | tail -n +2 | while IFS= read -r key; do done fidone
Dentro de este while
bucle, agregue la línea resaltada. Este es el comando que realiza la migración real:
redis-migrate.sh
. . .while [[ "$cursor" -ne 0 ]]; do. . . if [ -n "$keys" ]; then echo "$keys" | while IFS= read -r key; do redis-cli -a "$localpw" -n "$sourcedb" migrate localhost 8000 "$key" "$targetdb" 1000 copy auth "$managedpw" /dev/null 21 done fidone
Este comando invoca el redis-cli
programa cliente y se autentica en la instancia local de Redis con la localpw
variable antes de conectarse a la base de datos lógica ingresada por el usuario (representada por la sourcedb
variable). Luego, llama migrate
al comando de Redis que requiere que pase la dirección IP o el nombre de host del servidor de la instancia de Redis de destino, así como el puerto en el que se está ejecutando. Luego, pasa el nombre de la clave que se va a migrar (como se representa por la key
variable) y la base de datos en la instancia de Redis de destino a la que se debe migrar la clave (representada por targetdb
).
A continuación, se incluye un número que representa un tiempo de espera. Este tiempo de espera es la cantidad máxima de tiempo de comunicación inactiva entre las dos máquinas. Tenga en cuenta que no se trata de un límite de tiempo para la operación; solo significa que la operación siempre debe lograr cierto nivel de progreso dentro del tiempo de espera definido. Tanto el número de la base de datos de destino como los argumentos de tiempo de espera son necesarios para cada migrate
comando.
copy
Después del tiempo de espera se encuentra la bandera opcional . De manera predeterminada, migrate
eliminará cada clave de la base de datos de origen después de transferirlas al destino; al incluir esta opción, le está indicando al migrate
comando que simplemente copie las claves para que persistan en la fuente.
Después copy
viene la auth
bandera seguida de la contraseña de la instancia de Redis administrada. Esto no es necesario si está migrando datos a una instancia que no requiere autenticación, pero sí es necesario cuando está migrando datos a una instancia administrada por DigitalOcean.
Por último, esta línea incluye /dev/null
y 21
. /dev/null
redirige la salida estándar del comando al /dev/null
archivo, un dispositivo nulo que descarta inmediatamente cualquier dato escrito en él. 21
redirige el error estándar del comando a la salida estándar, lo que significa que, gracias al /dev/null
derecho antes del mismo, cualquier error potencial también se descarta inmediatamente.
Por último, agregue la siguiente línea resaltada después de la if/then
declaración, pero antes de la declaración while
del bucle externo done
. Esta línea actualiza el valor que contiene la cursor
variable al valor del cursor que contiene la reply
variable. Para ello, evalúa reply
con la expr
utilidad y busca el primer valor que coincida con una expresión regular ( '([0-9]*[0-9])'
). Debido a cómo scan
se formatea la salida del comando, esta expresión regular siempre coincidirá con el valor correcto del cursor:
redis-migrate.sh
. . .while [[ "$cursor" -ne 0 ]]; do. . . if [ -n "$keys" ]; then echo "$keys" | while IFS= read -r key; do redis-cli -a "$localpw" -n "$sourcedb" migrate localhost 8000 "$key" "$targetdb" 1000 copy auth "$managedpw" /dev/null 21 done fi cursor=$(expr "$reply" : '([0-9]*[0-9])')done
En conjunto, el script debería verse así:
redis-migrate.sh
#!/bin/bashset -euo pipefailif [ "$#" -lt 2 ]then echo "Migrate Redis keys to a DigitalOcean Managed Database" echo "Usage: $0 [source database] [target database]" exit 1fisourcedb=${1}targetdb=${2}cursor=-1read -s -p "Enter local Redis password: " localpwecho ""read -s -p "Enter managed Redis password: " managedpwwhile [[ "$cursor" -ne 0 ]]; do if [[ "$cursor" -eq -1 ]] then cursor=0 fi reply=$(redis-cli -a "$localpw" -n "$sourcedb" SCAN "$cursor") if [ -n "$reply" ]; then echo "$reply" | tail -n +2 | while IFS= read -r key; do redis-cli -a "$localpw" -n "$sourcedb" migrate localhost 8000 "$key" "$targetdb" 1000 copy auth "$managedpw" /dev/null 21 done fi cursor=$(expr "$reply" : '([0-9]*[0-9])')done
Comprueba que hayas añadido cada línea correctamente y, a continuación, guarda y cierra el archivo. Si has nano
creado el script antes, hazlo pulsando CTRL + X
, Y
y luego ENTER
.
Para finalizar la creación del script, márquelo como ejecutable con chmod
:
- sudo chmod +x redis-migrate.sh
Con esto, está listo para usar el script para migrar sus datos de Redis a una instancia de Redis administrada.
Paso 4: Migración de los datos de Redis
Para migrar sus datos de Redis con el script que creó en el paso anterior, puede invocarlo de esta manera:
- ./redis-migrate.sh source_database target_database
Suponiendo que siguió el primer paso opcional de este tutorial y cargó la base de datos predeterminada de su instancia local de Redis ( 0
) con datos y desea migrar estos datos a la 0
base de datos en su instancia administrada, usaría el siguiente comando:
- ./redis-migrate.sh 0 0
Recibirá el primer mensaje solicitando la contraseña de autenticación de su instancia local de Redis:
OutputEnter local Redis password:
Escriba la contraseña de su Redis local y luego presione ENTER
. Si no ha configurado su instancia local de Redis para que requiera una contraseña, simplemente presione ENTER
para dejar la localpw
variable de contraseña en blanco.
Luego se le solicitará que ingrese la contraseña de su base de datos Redis administrada:
OutputEnter local Redis password:Enter managed Redis password:
Nota: Si no tiene a mano la contraseña de su base de datos de Redis administrada, puede encontrarla navegando primero al Panel de control de DigitalOcean . Desde allí, haga clic en Bases de datos en el menú de la barra lateral izquierda y luego haga clic en el nombre de la instancia de Redis a la que desea migrar los datos. Desplácese hacia abajo hasta la sección Detalles de conexión donde encontrará un campo denominado contraseña . Haga clic en el botón Mostrar para revelar la contraseña, luego cópiela y péguela en el mensaje para autenticarse.
Si ingresó los números de base de datos correctos y las contraseñas válidas, el script migrará todas las claves de su base de datos y se cerrará sin ningún otro resultado. Para comprobar si la migración se realizó correctamente, conéctese a su base de datos de Redis administrada:
- red
Deja una respuesta