Introducció

Les instantànies (RDB) són una de les dues principals tècniques de persistència que Redis ofereix per emmagatzemar les dades a disc. Aquest mètode permet capturar l'estat complet de la base de dades en un moment determinat i guardar-lo en un fitxer binari. Aquest fitxer es pot utilitzar per restaurar la base de dades en cas de fallada o per migrar dades entre servidors.

Conceptes Clau

  • Instantània (Snapshot): Una còpia de l'estat complet de la base de dades en un moment específic.
  • RDB (Redis Database File): El fitxer binari que conté la instantània de la base de dades.
  • Persistència: El procés d'emmagatzemar dades de manera que es puguin recuperar després d'un reinici o fallada del sistema.

Avantatges i Desavantatges

Avantatges

  • Rendiment: Les instantànies RDB són molt eficients en termes de rendiment, ja que Redis pot continuar processant comandes mentre es crea la instantània.
  • Recuperació Ràpida: Els fitxers RDB són compactes i es carreguen ràpidament, permetent una recuperació ràpida de la base de dades.
  • Portabilitat: Els fitxers RDB són fàcils de transferir entre servidors, facilitant la migració de dades.

Desavantatges

  • Pèrdua de Dades: En cas de fallada, es poden perdre les dades que s'han modificat des de l'última instantània.
  • Temps de Creació: La creació d'una instantània pot ser costosa en termes de temps i recursos, especialment per a bases de dades grans.

Configuració de les Instantànies RDB

Redis permet configurar quan i com es creen les instantànies RDB mitjançant el fitxer de configuració redis.conf. A continuació es mostren algunes de les configuracions més comunes:

Configuració Bàsica

save 900 1
save 300 10
save 60 10000

Aquestes línies indiquen a Redis que creï una instantània si es compleix alguna de les següents condicions:

  • Cada 900 segons (15 minuts) si s'ha realitzat almenys una escriptura.
  • Cada 300 segons (5 minuts) si s'han realitzat almenys 10 escriptures.
  • Cada 60 segons (1 minut) si s'han realitzat almenys 10,000 escriptures.

Desactivació de les Instantànies

Si no vols utilitzar les instantànies RDB, pots desactivar-les comentant o eliminant les línies save del fitxer de configuració:

# save 900 1
# save 300 10
# save 60 10000

Ubicació del Fitxer RDB

Per defecte, Redis guarda el fitxer RDB en el directori de treball especificat en el fitxer de configuració. Pots canviar la ubicació del fitxer RDB amb la directiva dir i el nom del fitxer amb la directiva dbfilename:

dir /var/lib/redis/
dbfilename dump.rdb

Creació Manual d'Instantànies

A més de la configuració automàtica, també pots crear instantànies manualment utilitzant les següents comandes de Redis CLI:

Comanda SAVE

La comanda SAVE força Redis a crear una instantània de la base de dades de manera síncrona. Aquesta comanda bloqueja Redis fins que la instantània s'hagi creat completament.

SAVE

Comanda BGSAVE

La comanda BGSAVE crea una instantània de la base de dades de manera asíncrona. Redis continua processant comandes mentre es crea la instantània en segon pla.

BGSAVE

Restauració d'Instantànies

Per restaurar una instantània, simplement has de copiar el fitxer RDB a la ubicació especificada en la configuració de Redis i reiniciar el servidor Redis. Redis carregarà automàticament les dades del fitxer RDB en iniciar-se.

Exercici Pràctic

Objectiu

Configurar Redis per crear instantànies automàticament i crear una instantània manualment.

Passos

  1. Configura les Instantànies Automàtiques:

    • Edita el fitxer redis.conf i afegeix les següents línies:
      save 60 1
      save 300 10
      save 900 100
      
  2. Reinicia Redis:

    • Reinicia el servidor Redis per aplicar els canvis de configuració.
  3. Crea una Instantània Manualment:

    • Utilitza la comanda BGSAVE per crear una instantània en segon pla:
      BGSAVE
      
  4. Verifica la Creació de la Instantània:

    • Comprova que el fitxer dump.rdb s'ha creat en el directori especificat.

Solució

  1. Edita el fitxer redis.conf:

    save 60 1
    save 300 10
    save 900 100
    
  2. Reinicia el servidor Redis:

    sudo systemctl restart redis
    
  3. Crea una instantània manualment:

    redis-cli BGSAVE
    
  4. Verifica la creació del fitxer dump.rdb:

    ls /var/lib/redis/dump.rdb
    

Conclusió

Les instantànies RDB són una eina poderosa per garantir la persistència de les dades en Redis. Tot i que poden comportar una pèrdua de dades en cas de fallada, la seva eficiència i facilitat d'ús les fan una opció popular per a moltes aplicacions. En el proper tema, explorarem l'altre mètode de persistència de Redis: els Fitxers Només de Afegeix (AOF).

© Copyright 2024. Tots els drets reservats