Redis is een geheugen-gebaseerde gegevensopslag en is daarom in wezen vluchtig. Wanneer de Redis-server opnieuw opstart, kunnen alle gegevens verloren gaan, en om dit te compenseren biedt Redis twee soorten gegevensopslagmethoden: RDB (Redis Database Snapshot) en AOF (Append-Only File). In deze post bekijken we de kenmerken en verschillen van beide methoden en schetsen we de instellingen, voor- en nadelen van elk.
1. RDB (Redis Database Snapshot)
RDB methode slaat de gegevens die in het geheugen zijn opgeslagen periodiek op als een snapshot op de schijf. Redis genereert RDB-bestanden volgens een ingestelde periode en hiermee kunnen de gegevens worden hersteld bij het opnieuw opstarten van de server.
Belangrijkste kenmerken van RDB
- Opslagcyclus: Via de
redis.conf
kunt u een opslagperiode voor de gegevens op de schijf configureren met desave
optie. Bijvoorbeeldsave 60 1000
genereert een snapshot als er meer dan 1000 sleutels zijn veranderd binnen 60 seconden.
save 60 1000
- Bestandslocatie: RDB-bestanden worden standaard opgeslagen in de directory die is opgegeven door
dir
. De standaardlocatie is/var/lib/redis
en de bestandsnaam isdump.rdb
.
dir /var/lib/redis/
dbfilename dump.rdb
Voordelen van RDB
- Hoge prestaties: De RDB-methode heeft weinig invloed op de prestaties van Redis en als de cyclus voor het genereren van de snapshot lang is, verbruikt het ook niet veel CPU-resources.
- Kleine bestandsgrootte: Aangezien periodiek alle gegevens als snapshot worden vastgelegd, is de bestandsgrootte relatief klein en is het gemakkelijk om backups te beheren.
Nadelen van RDB
- Verlies van gegevensmogelijkheden: Omdat de RDB-methode periodiek opslaat, kunnen als Redis plotseling stopt, de gegevens na de laatste snapshot verloren gaan.
- Hersteltijd: RDB slaat alle gegevens in één keer op de snapshot op, waardoor het langer kan duren om een grote hoeveelheid gegevens te herstellen.
Geschikte gebruikssituaties voor RDB
RDB is vooral geschikt voor gevallen zoals cache-gegevens waarbij het niet erg is om periodiek een backup te maken. Het is voordelig in situaties waar periodieke gegevensbackups nodig zijn in plaats van een realtime werkqueue, en biedt eenvoudige gegevensopslag zonder afbreuk te doen aan de prestaties van de Redis-server.
2. AOF (Append-Only File)
AOF biedt doorlopende gegevensopslag door alle schrijfopdrachten van Redis sequentaal op de schijf te registreren. AOF-bestanden registreren elk gegevenswijziging, zodat de gegevens perfect kunnen worden hersteld, zelfs als de Redis-server opnieuw opstart.
Belangrijkste kenmerken van AOF
- Opdrachtregistratie: De AOF-bestanden registreren alle gegevenswijzigingsopdrachten. Elke keer dat een schrijfoverdracht plaatsvindt, wordt deze opgeslagen op de schijf, zodat alle gegevenswijzigingen worden opgeslagen.
- Bestandslocatie en naam: De AOF-bestanden worden standaard opgeslagen met de naam die is opgegeven in de
appendfilename
optie. De standaardwaarde isappendonly.aof
en ze worden opgeslagen in de directory die is opgegeven in dedir
instelling.
dir /var/lib/redis/
appendonly yes
appendfilename appendonly.aof
- Synchronisatiecyclus: U kunt de cyclus voor het schrijven van gegevens naar de schijf instellen via de
appendfsync
optie.
appendfsync everysec # Synchronisatie elke seconde
Voordelen van AOF
- Gegevensopslag: Aangezien alle schrijfopdrachten op de schijf worden geregistreerd, kunnen gegevens worden hersteld tot aan de laatste registratie zelfs als de server plotseling stopt.
- Lezen opdrachten worden niet geregistreerd: AOF registreert alleen de gegevenswijzigingsopdrachten, zodat onnodige leesopdrachten niet in het bestand staan, wat opslagruimte bespaart.

Nadelen van AOF
- Prestatievermindering: Aangezien alle schrijfopdrachten op de schijf worden geregistreerd, kan de prestatie, vooral als
appendfsync
is ingesteld opalways
, verminderen. - Bestandsgrootte toename: Bij frequente gegevensveranderingen kan de grootte van het AOF-bestand zeer groot worden. Om dit op te lossen, kan Redis het AOF-bestand comprimeren met het BGREWRITEAOF commando.
Geschikte gebruikssituaties voor AOF
AOF is nuttig voor werkqueues of toepassingen waarbij gegevensopslag cruciaal is. Wanneer gegevensopslag belangrijk is, kan het gebruikt worden met een periodieke synchronisatie-instelling (everysec
) om een balans te vinden tussen prestaties en gegevensopslag.
3. Gelijktijdig gebruik van RDB en AOF
In Redis kunnen RDB en AOF tegelijkertijd worden gebruikt om de gegevensopslag en prestaties in balans te houden. Als beide methoden zijn ingeschakeld, herstelt Redis vooral via het AOF-bestand.
- RDB: Slaat de gegevens snel en eenvoudig op en biedt basisbackups in snapshotvorm.
- AOF: Registreert alle schrijfopdrachten om de gegevensopslag te verbeteren, waardoor de kans op gegevensverlies kan worden geminimaliseerd.
4. Voorbeeldconfiguratie van Redis
Hieronder staat een voorbeeldinstelling die gebruik maakt van zowel RDB als AOF en tegelijkertijd voldoende prestaties en gegevensopslag behoudt.
# Basis configuratie van Redis-directory en bestand
dir /var/lib/redis/
dbfilename dump.rdb
appendfilename appendonly.aof
# RDB snapshot instellen (snapshot opslaan als meer dan 1000 sleutels binnen 60 seconden zijn veranderd)
save 60 1000
# AOF-instellingen
appendonly yes
appendfsync everysec # Synchronisatie elke seconde
# AOF-bestand herschrijven instellen (automatisch herschrijven als bestandsgrootte meer dan 64MB wordt, met 100% groei)
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
Conclusie
In deze post hebben we de twee gegevensopslagmethoden van Redis, RDB en AOF, besproken. Elke methode heeft variaties in opslag en prestaties, dus het is belangrijk om de juiste methode te kiezen op basis van de kenmerken van de applicatie. In de volgende post zullen we de geheugenbeheer en prestatie-optimalisatie van Redis behandelen en manieren introduceren om het geheugen van Redis efficiënt te gebruiken.
댓글이 없습니다.