Hvad er det fulde navn på Redis RDB? Redis RDB hukommelse data persistens driftstilstand

RDB's fulde navn erRedis database.

  • Som navnet antyder, er RDB en Redis-database, der bruges til at gemme data.
  • Derfor, gennem RDB persistens, bliver de data, der er gemt i Redis-hukommelsen, skrevet til RDB-filen og gemt på disken for at opnå persistens.
  • Funktionen ved Redis er, at den kan bestå data, det vil sige skrive data i hukommelsen til disken for at sikre, at ingen data går tabt, og kan også indlæse data fra disken ind i hukommelsen.

Hvad er det fulde navn på Redis RDB? Redis RDB hukommelse data persistens driftstilstand

Redis' funktioner i starten er alle baseret på hukommelse, så ydeevnen er meget høj, men når først programmet er lukket, går dataene tabt.

Derfor er vi nødt til at skrive in-memory data til disk med specificerede intervaller, hvilket er Snapshot i jargon.

Ved gendannelse skrives snapshotfilen direkte til hukommelsen.

Dette er også en af ​​de vigtigste forskelle mellem Redis og Memcached, fordi Memcached ikke har nogen vedholdenhedsevne.

For at bevare Redis-hukommelsesdata giver Redis os følgende metoder:

  • Snapshot-metode (RDB, Redis DataBase): skriv hukommelsesdata til disk i binær form på et bestemt tidspunkt;
  • Tilføj kun fil (AOF, Tilføj kun fil), optag alle operationskommandoer og tilføj filen i tekstform;
  • Hybrid persistens, en ny metode efter Redis 4.0, hybrid persistens kombinerer fordelene ved RDB og AOF.Når du skriver, skal du først skrive de aktuelle data til begyndelsen af ​​filen i form af RDB, og derefter gemme de efterfølgende operationskommandoer til filen i form af AOF, som ikke kun kan sikre hastigheden af ​​Redis genstart, men også reducere risikoen for tab af data.

Fordi hver persistensordning har specifikke brugsscenarier.

Redis RDB hukommelse data persistens driftstilstand

  • RDB (Redis DataBase) er processen med at skrive et hukommelsessnapshot (Snapshot) på et bestemt tidspunkt til disk i binær form.
  • Hukommelsessnapshots er, hvad vi sagde ovenfor.Det refererer til tilstandsregistreringen af ​​data i hukommelsen på et bestemt tidspunkt.
  • Dette svarer til at tage et billede. Når du tager et billede af en ven, kan et billede øjeblikkeligt optage alle venners billeder.
  • Der er to måder at udløse RDB på: den ene er manuel udløsning, og den anden er automatisk udløsning.

Udløs RDB manuelt

Der er to handlinger til manuelt at udløse persistens:saveOgbgsave.

Den største forskel mellem dem er, om de skal blokere udførelsen af ​​Redis-hovedtråden.

1. gem kommando

Udførelse af gem-kommandoen på klientsiden vil udløse vedholdenheden af ​​Redis, men det vil også gøre Redis i en blokerende tilstand. Den vil ikke reagere på kommandoer sendt af andre klienter, før RDB'en er vedvarende, så den skal bruges med forsigtighed i produktionsmiljøet.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Processen med at udføre kommandoen er vist i figuren 

2. bgsave kommando

  • bgsave (baggrundslagring) er en lagring i baggrunden.
  • Den største forskel mellem det og gem-kommandoen er, at bgsave vil forgrene en underordnet proces for at udføre persistens.
  • Hele processen sker kun, når børneprocessen er gaffel.Der er kun en kort blokering.
  • Efter at den underordnede proces er oprettet, kan Redis' hovedproces reagere på anmodninger fra andre klienter.

med at blokere hele processensavesammenlignet med kommandoenbgsaveKommando er åbenbart mere egnet for os at bruge.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

Udløs RDB automatisk

Efter at have talt om manuel udløsning, lad os se på automatisk udløsning.Vi kan konfigurere betingelserne for automatisk udløsning i konfigurationsfilen.

1. spar mn

  • save mn betyder, at inden for m sekunder, hvis n taster ændres, udløses persistens automatisk.Parametrene m og n kan findes i Redis-konfigurationsfilen.
  • Gem 60 1 betyder f.eks., at inden for 60 sekunder, så længe én tast ændres, vil RDB-vedvarenhed blive udløst.
  • Essensen af ​​automatisk udløsning af persistens er, at hvis de indstillede triggerbetingelser er opfyldt, vil Redis automatisk udføre bgsave-kommandoen én gang.

Bemærk: Når flere gem-kommandoer er indstillet, vil en hvilken som helst betingelse udløse persistens.

For eksempel indstiller vi følgende to save mn-kommandoer:

save 60 10
save 600 20
  • Når Redis-nøgleværdien ændres 60 gange inden for 10s, udløses persistens;
  • Hvis Redis-nøglen ændres inden for 60s, og hvis værdien ændres mindre end 10 gange, vil Redis afgøre, om Redis-nøglen er blevet ændret mindst 600 gange inden for 20s, og i så fald udløse persistens.

2. Flushall

  • Flushall-kommandoen bruges til at tømme Redis-databasen.
  • Det skal bruges med forsigtighed i et produktionsmiljø.
  • Når Redis udfører flushall-kommandoen, udløser den automatisk persistens og rydder RDB-filen.

3. Master-slave-synkroniseringsudløser

I Redis master-slave-replikering, når slavenoden udfører en fuld replikeringsoperation, vil master-noden udføre bgsave-kommandoen for at sende RDB-filen til slavenoden. Denne proces udløser automatisk Redis-vedholdenhed.

Redis kan forespørge om de aktuelle konfigurationsparametre gennem kommandoer.

Formatet på forespørgselskommandoen er:config get xxx

For eksempel, hvis du ønsker at få lagernavnet for en RDB-fil, kan du bruge config get dbfilename .

Udførelseseffekten er som følger:

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

Da Redis-serveren vil blokere, når RDB-filen indlæses, indtil indlæsningen er fuldført, kan det medføre lang tid, og webstedet kan ikke tilgås.

Hvis du manuelt vil slette RDB-cache-filen dump.rdb fra Redis, kan du bruge følgende kommando til at finde lagringsstien til dump.rdb-filen▼

find / -name dump.rdb
  • Slet derefter dump.rdb cache-filen manuelt via SSH.

Redis indstiller konfigurationen af ​​RDB

Med hensyn til indstilling af konfigurationen af ​​RDB, kan du bruge følgende to måder:

  1. Redigér Redis-konfigurationsfilen manuelt
  2. Brug kommandolinjeindstillingerne, config set dir "/usr/data" er lagerkommandoen til at ændre RDB-filen

Bemærk: Konfigurationen i redis.conf kan opnås gennem config get xxx og ændres gennem config set xxx-værdi, og metoden til manuel ændring af Redis-konfigurationsfilen er globalt effektiv, det vil sige, at parametrene indstillet ved genstart af Redis-serveren ikke vil gå tabt, men ændret ved hjælp af kommandoen, vil den gå tabt, efter at Redis genstarter.

Men hvis du vil ændre Redis-konfigurationsfilen manuelt, så den træder i kraft med det samme, skal du genstarte Redis-serveren, og kommandometoden kræver ikke genstart af Redis-serveren.

RDB-filgendannelse

Når Redis-serveren starter, hvis RDB-filen dump.rdb findes i Redis-rodmappen, vil Redis automatisk indlæse RDB-filen for at gendanne vedvarende data.

Hvis der ikke er nogen dump.rdb-fil i rodmappen, skal du først flytte dump.rdb-filen til Redis-rodmappen.

Selvfølgelig er der log information når Redis starter, som vil vise om RDB filen er indlæst.

Redis-serveren blokerer, mens RDB-filen indlæses, indtil indlæsningen er fuldført.

Nu ved vi, at RDB-vedholdenhed er opdelt i to måder: manuel udløsning og automatisk udløsning:

  1. Dens fordel er, at lagerfilen er lille, og datagendannelse er hurtigere, når Redis startes.
  2. Ulempen er, at der er risiko for tab af data.

Gendannelse af RDB-filer er også meget enkel. Du skal blot placere RDB-filerne i rodmappen på Redis, og Redis vil automatisk indlæse og gendanne data, når den starter.

RDB fordele og ulemper

1) RDB fordele

Indholdet af RDB er binære data, som optager mindre hukommelse, er mere kompakte og er mere velegnede som backup-fil;

RDB er meget nyttigt til katastrofegendannelse, det er en komprimeret fil, der kan overføres til en fjernserver hurtigere til Redis-tjenestegendannelse;

RDB kan i høj grad forbedre hastigheden af ​​Redis, fordi den vigtigste Redis-proces vil gafle en underordnet proces til at bevare data til disk.

Redis-hovedprocessen udfører ikke operationer såsom disk I/O;

Sammenlignet med AOF-formatfiler genstarter RDB-filer hurtigere.

2) Ulemper ved RDB

Fordi RDB kun kan gemme data med et bestemt tidsinterval, vil Redis-data gå tabt i en periode, hvis Redis-tjenesten ved et uheld afsluttes på midten;

En proces, hvor RDB kræver hyppige gafler for at gemme den på disk ved hjælp af underindtastning.

Hvis datasættet er stort, kan fork være tidskrævende, og hvis datasættet er stort, er CPU-ydeevnen dårlig, hvilket kan forårsage, at Redis ikke er i stand til at betjene klienter i et par millisekunder eller endda et sekund.

Vi kan selvfølgelig også deaktivere vedholdenhed for at forbedre udførelseseffektiviteten af ​​Redis.

Hvis du ikke er følsom over for tab af data, kan du gøre dette, når klienten opretter forbindelse config set save "" Kommando til at deaktivere persistens for Redis.

redis.conf, hvis isaveKommenter alle konfigurationer i begyndelsen, og persistens vil også blive deaktiveret, men dette gøres generelt ikke.

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) delt "Hvad er det fulde navn på Redis RDB? Redis RDB In-Memory Data Persistence Operation Mode", vil hjælpe dig.

Velkommen til at dele linket til denne artikel:https://www.chenweiliang.com/cwl-26677.html

Velkommen til Telegram-kanalen på Chen Weiliangs blog for at få de seneste opdateringer!

🔔 Vær den første til at få den værdifulde "ChatGPT Content Marketing AI Tool Usage Guide" i kanalens øverste bibliotek! 🌟
📚 Denne guide indeholder enorm værdi, 🌟Dette er en sjælden mulighed, gå ikke glip af det! ⏰⌛💨
Del og like hvis du har lyst!
Din deling og likes er vores kontinuerlige motivation!

 

发表 评论

Din e-mail-adresse vil ikke blive offentliggjort. 必填 项 已 用 * 标注

scroll til toppen