Introducción

Las instantáneas en Redis, también conocidas como RDB (Redis Database Backup), son una forma de persistencia que permite guardar el estado de la base de datos en un archivo en disco en intervalos regulares. Este archivo puede ser utilizado para restaurar la base de datos en caso de un fallo o para migrar datos entre servidores.

Conceptos Clave

  • RDB (Redis Database Backup): Un archivo que contiene una instantánea del estado de la base de datos en un momento específico.
  • Persistencia: La capacidad de Redis para guardar datos en disco para evitar la pérdida de datos en caso de un fallo del sistema.
  • Configuración de RDB: Parámetros en el archivo de configuración de Redis (redis.conf) que controlan cómo y cuándo se crean las instantáneas.

Ventajas y Desventajas de RDB

Ventajas

  • Rápido en la Restauración: Los archivos RDB son compactos y rápidos de cargar, lo que permite una restauración rápida de la base de datos.
  • Menor Impacto en el Rendimiento: La creación de instantáneas RDB puede ser menos intensiva en recursos en comparación con otros métodos de persistencia, ya que se realiza en intervalos regulares y no continuamente.
  • Portabilidad: Los archivos RDB son fáciles de mover entre servidores, lo que facilita la migración de datos.

Desventajas

  • Pérdida de Datos: Dado que las instantáneas se crean en intervalos regulares, cualquier dato escrito después de la última instantánea y antes de un fallo se perderá.
  • Impacto en el Rendimiento durante la Creación: Aunque menos intensivo que otros métodos, la creación de una instantánea puede causar una breve pausa en el servicio, especialmente en bases de datos grandes.

Configuración de RDB

La configuración de RDB se realiza en el archivo redis.conf. A continuación, se presentan algunos de los parámetros más importantes:

Parámetros de Configuración

  • save: Define los intervalos en los que Redis debe crear una instantánea. El formato es save <segundos> <cambios>, donde Redis creará una instantánea si se han realizado al menos <cambios> en <segundos>.
# Crear una instantánea si se han realizado al menos 1 cambio en 900 segundos (15 minutos)
save 900 1

# Crear una instantánea si se han realizado al menos 10 cambios en 300 segundos (5 minutos)
save 300 10

# Crear una instantánea si se han realizado al menos 10000 cambios en 60 segundos (1 minuto)
save 60 10000
  • dbfilename: Nombre del archivo RDB.
dbfilename dump.rdb
  • dir: Directorio donde se guardará el archivo RDB.
dir /var/lib/redis
  • rdbcompression: Habilita o deshabilita la compresión del archivo RDB.
rdbcompression yes
  • rdbchecksum: Habilita o deshabilita la verificación de checksum para el archivo RDB.
rdbchecksum yes

Creación Manual de una Instantánea

Además de la configuración automática, también puedes crear una instantánea manualmente utilizando los comandos SAVE y BGSAVE.

Comando SAVE

El comando SAVE bloquea el servidor Redis hasta que la instantánea se haya creado. Este método no es recomendado en entornos de producción debido a la pausa que puede causar.

SAVE

Comando BGSAVE

El comando BGSAVE crea una instantánea en segundo plano, permitiendo que el servidor continúe procesando comandos.

BGSAVE

Restauración desde un Archivo RDB

Para restaurar una base de datos desde un archivo RDB, simplemente coloca el archivo RDB en el directorio configurado (dir) y reinicia el servidor Redis. Redis cargará automáticamente el archivo RDB al iniciar.

Ejercicio Práctico

Ejercicio 1: Configuración de RDB

  1. Abre el archivo redis.conf en tu servidor Redis.
  2. Configura Redis para crear una instantánea si se han realizado al menos 5 cambios en 300 segundos.
  3. Cambia el nombre del archivo RDB a backup.rdb.
  4. Guarda los cambios y reinicia el servidor Redis.

Solución

# Abre el archivo redis.conf y realiza los siguientes cambios:

# Crear una instantánea si se han realizado al menos 5 cambios en 300 segundos
save 300 5

# Cambiar el nombre del archivo RDB a backup.rdb
dbfilename backup.rdb

# Guardar los cambios y reiniciar el servidor Redis

Ejercicio 2: Creación Manual de una Instantánea

  1. Conéctate a tu servidor Redis utilizando la CLI de Redis.
  2. Crea una instantánea manualmente utilizando el comando BGSAVE.
  3. Verifica que el archivo RDB se haya creado en el directorio configurado.

Solución

# Conéctate a tu servidor Redis utilizando la CLI
redis-cli

# Crea una instantánea manualmente
BGSAVE

# Verifica que el archivo RDB se haya creado en el directorio configurado
ls /var/lib/redis

Conclusión

En esta sección, hemos aprendido sobre las instantáneas RDB en Redis, sus ventajas y desventajas, y cómo configurarlas y utilizarlas tanto automáticamente como manualmente. Las instantáneas RDB son una herramienta poderosa para la persistencia de datos en Redis, permitiendo una restauración rápida y eficiente en caso de fallos. En la próxima sección, exploraremos los Archivos de Solo Adición (AOF) como otra opción de persistencia en Redis.

© Copyright 2024. Todos los derechos reservados