Gestión de Persistencia de Redis

RedisBeginner
Practicar Ahora

Introducción

En este laboratorio, exploraremos la gestión de persistencia de Redis, centrándonos en cómo configurar y administrar la durabilidad de los datos. Comenzaremos configurando la persistencia de Redis Database (RDB) utilizando el comando CONFIG SET, que nos permite crear instantáneas (snapshots) de nuestros datos de Redis en un momento dado. También cubriremos la habilitación de la persistencia Append-Only File (AOF), el guardado manual de datos, la verificación de la hora del último guardado y la reescritura del archivo AOF para optimizar su tamaño.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 92%. Ha recibido una tasa de reseñas positivas del 95% por parte de los estudiantes.

Configurar Persistencia RDB

En este paso, configuraremos la persistencia de Redis Database (RDB). RDB crea instantáneas (snapshots) de su conjunto de datos en momentos específicos a intervalos determinados. Utilizaremos el comando CONFIG SET para modificar la configuración del servidor Redis dinámicamente sin reiniciar el servidor.

Primero, conéctese al servidor Redis utilizando la interfaz de línea de comandos de Redis (redis-cli). Abra su terminal y ejecute el siguiente comando:

redis-cli

Verá el prompt de redis-cli, que se ve así: 127.0.0.1:6379>.

Verifiquemos la configuración actual de guardado RDB utilizando el comando CONFIG GET.

CONFIG GET save

La salida predeterminada muestra varios puntos de guardado:

1) "save"
2) "900 1 300 10 60 10000"

Esto significa que Redis guardará la base de datos si al menos 1 clave ha cambiado en 900 segundos, O si al menos 10 claves han cambiado en 300 segundos, O si al menos 10000 claves han cambiado en 60 segundos.

Ahora, modifiquemos esto a un único punto de guardado: guarde la base de datos si al menos 1 clave ha cambiado en 60 segundos.

CONFIG SET save "60 1"

Debería ver OK como salida, confirmando el cambio.

OK

Verifique que la configuración se ha actualizado:

CONFIG GET save

La salida ahora debería reflejar nuestra nueva configuración:

1) "save"
2) "60 1"

A continuación, configuraremos el directorio donde Redis almacena su archivo RDB (dump.rdb). Primero, salga de redis-cli para ejecutar algunos comandos de shell.

exit

Ahora, cree un nuevo directorio y establezca los permisos correctos. El servidor Redis se ejecuta como el usuario redis, por lo que necesita la propiedad del directorio para escribir archivos.

sudo mkdir -p /var/lib/redis/labex_data
sudo chown redis:redis /var/lib/redis/labex_data

Vuelva a conectarse a Redis y establezca la configuración dir a la nueva ruta.

redis-cli
CONFIG SET dir /var/lib/redis/labex_data

Debería ver OK. Verifique el cambio:

CONFIG GET dir

La salida confirmará el nuevo directorio:

1) "dir"
2) "/var/lib/redis/labex_data"

Ahora Redis guardará sus archivos de persistencia en el directorio /var/lib/redis/labex_data.

Para asegurarse de que su progreso se guarde y verifique correctamente, por favor, salga de la sesión de redis-cli.

exit

Habilitar Persistencia AOF

En este paso, habilitaremos la persistencia Append-Only File (AOF). AOF registra cada operación de escritura recibida por el servidor. Esto proporciona una mejor durabilidad que RDB porque los datos se escriben en el registro con mayor frecuencia.

Primero, conéctese al servidor Redis:

redis-cli

Verifique si AOF está actualmente habilitado usando el comando CONFIG GET.

CONFIG GET appendonly

Por defecto, está deshabilitado:

1) "appendonly"
2) "no"

Para habilitar AOF, establezca el parámetro appendonly a yes.

CONFIG SET appendonly yes

Verá OK como salida. Ahora, verifique el cambio:

CONFIG GET appendonly

La salida debería confirmar que AOF ahora está habilitado:

1) "appendonly"
2) "yes"

Con AOF habilitado, Redis registrará todos los comandos de escritura en el archivo appendonly.aof ubicado en el directorio que configuramos en el paso anterior (/var/lib/redis/labex_data).

Agreguemos algunos datos para ver AOF en acción. Este comando SET se escribirá en el archivo AOF.

SET mykey "myvalue"

Debería ver la siguiente salida:

OK

Para asegurarse de que su progreso se guarde y verifique correctamente, por favor, salga de la sesión de redis-cli.

exit

Guardar Datos Manualmente con SAVE

En este paso, aprenderá cómo activar manualmente una instantánea RDB utilizando el comando SAVE. Si bien Redis guarda los datos automáticamente según su configuración, un guardado manual es útil para crear copias de seguridad o asegurarse de que los datos se persistan antes de un evento de mantenimiento planificado.

Primero, conéctese al servidor Redis:

redis-cli

Agreguemos algunos datos nuevos para tener algo que guardar.

SET anotherkey "anothervalue"

Debería ver la siguiente salida:

OK

Ahora, active manualmente un guardado en disco utilizando el comando SAVE.

SAVE

El comando SAVE realiza un guardado síncrono, lo que significa que bloqueará todas las demás solicitudes de clientes hasta que la operación de guardado se complete. Para bases de datos grandes, esto puede causar una pausa notable.

Verá OK una vez que el guardado haya finalizado:

OK

Esto confirma que Redis ha escrito correctamente el conjunto de datos actual en el archivo dump.rdb en el directorio /var/lib/redis/labex_data. Para entornos de producción, generalmente se prefiere el comando no bloqueante BGSAVE.

Para asegurarse de que su progreso se guarde y verifique correctamente, por favor, salga de la sesión de redis-cli.

exit

Comprobar Última Hora de Guardado con LASTSAVE

En este paso, utilizaremos el comando LASTSAVE para comprobar la marca de tiempo del último guardado RDB exitoso. Este comando es útil para monitorizar y verificar que su estrategia de persistencia está funcionando como se espera.

Primero, conéctese al servidor Redis:

redis-cli

Para obtener la marca de tiempo del último guardado exitoso, ejecute el comando LASTSAVE.

LASTSAVE

El comando devuelve una marca de tiempo Unix, que es el número de segundos transcurridos desde el 1 de enero de 1970 (UTC). La salida se verá algo así, aunque el número será diferente para usted:

(integer) 1678886400

Esta marca de tiempo corresponde al momento en que ejecutó el comando SAVE en el paso anterior.

Veamos cómo se actualiza la marca de tiempo. Agregaremos más datos, realizaremos otro guardado manual y luego comprobaremos la hora del último guardado nuevamente.

SET anotherkey2 "anothervalue2"
SAVE
LASTSAVE

Después de ejecutar estos comandos, verá una marca de tiempo nueva y más reciente devuelta por el segundo comando LASTSAVE, lo que confirma que se creó una nueva instantánea.

Para asegurarse de que su progreso se guarde y verifique correctamente, por favor, salga de la sesión de redis-cli.

exit

Reescribir AOF con BGREWRITEAOF

En este paso, aprenderemos cómo reescribir el archivo AOF utilizando el comando BGREWRITEAOF. A medida que su aplicación se ejecuta, el archivo AOF crece. Puede contener muchos comandos redundantes (por ejemplo, incrementar un contador varias veces). Reescribir el archivo AOF crea un archivo nuevo y compacto con el conjunto mínimo de comandos necesarios para reconstruir el conjunto de datos actual, lo que puede mejorar significativamente los tiempos de inicio de Redis.

Primero, conéctese al servidor Redis:

redis-cli

Para demostrar el efecto de la reescritura, realicemos algunas operaciones que agregarán comandos innecesarios al registro AOF.

SET key1 "value1"
SET key2 "value2"
DEL key1
SET key3 "value3"

El archivo AOF ahora contiene cuatro comandos. Sin embargo, para reconstruir el estado actual, solo necesitamos establecer key2 y key3. Los comandos relacionados con key1 son redundantes.

Ahora, active una reescritura en segundo plano del archivo AOF.

BGREWRITEAOF

Verá un mensaje de confirmación de que el proceso ha comenzado:

Background append only file rewriting started

Redis realiza esta operación en segundo plano, por lo que no bloquea las solicitudes de los clientes. Crea un archivo AOF temporal, escribe el conjunto de datos actual en él de la manera más eficiente y luego reemplaza atómicamente el archivo AOF antiguo por el nuevo.

Después de que la reescritura se complete, el archivo appendonly.aof será más pequeño y contendrá solo los comandos para establecer key2 y key3.

Para asegurarse de que su progreso se guarde y verifique correctamente, por favor, salga de la sesión de redis-cli.

exit

Resumen

En este laboratorio, ha aprendido los fundamentos de la gestión de persistencia de Redis. Ha practicado la configuración de los mecanismos de persistencia RDB y AOF utilizando CONFIG SET. También ha aprendido a realizar guardados manuales de datos con el comando SAVE, a comprobar la hora del último guardado con LASTSAVE y a optimizar el archivo AOF con BGREWRITEAOF. Estas habilidades son esenciales para garantizar la durabilidad de los datos y mantener una instancia de Redis saludable.