Hva er det fulle navnet til Redis RDB? Redis RDB-minnedatapersistensdriftsmodus

Det fulle navnet til RDB erRedis database.

  • Som navnet antyder, er RDB en Redis-database som brukes til å lagre data.
  • Derfor, gjennom RDB-persistens, blir dataene som er lagret i Redis-minnet skrevet til RDB-filen og lagret på disken for å oppnå persistens.
  • Funksjonen til Redis er at den kan vedvare data, det vil si skrive data i minnet til disken for å sikre at ingen data går tapt, og kan også laste data fra disken inn i minnet.

Hva er det fulle navnet til Redis RDB? Redis RDB-minnedatapersistensdriftsmodus

Operasjonene til Redis i begynnelsen er alle basert på minne, så ytelsen er veldig høy, men når programmet er lukket, går dataene tapt.

Derfor må vi skrive data i minnet til disk med spesifiserte intervaller, som er Snapshot på sjargong.

Ved gjenoppretting skrives stillbildefilen direkte til minnet.

Dette er også en av hovedforskjellene mellom Redis og Memcached, fordi Memcached ikke har noen utholdenhetsevne.

For å opprettholde Redis-minnedata gir Redis oss følgende metoder:

  • Snapshot-metode (RDB, Redis DataBase): skriv minnedata til disk i binær form på et bestemt tidspunkt;
  • Legg til kun fil (AOF, Legg til kun fil), registrer alle operasjonskommandoer og legg til filen i tekstform;
  • Hybrid persistens, en ny metode etter Redis 4.0, hybrid persistens kombinerer fordelene med RDB og AOF.Når du skriver, skriv først gjeldende data til begynnelsen av filen i form av RDB, og lagre deretter de påfølgende operasjonskommandoene til filen i form av AOF, som ikke bare kan sikre hastigheten på omstart av Redis, men også redusere risikoen for tap av data.

Fordi hver utholdenhetsplan har spesifikke bruksscenarier.

Redis RDB-minnedatapersistensdriftsmodus

  • RDB (Redis DataBase) er prosessen med å skrive et minne øyeblikksbilde (Snapshot) på et bestemt tidspunkt til disk i binær form.
  • Minne øyeblikksbilder er det vi sa ovenfor.Det refererer til tilstandsregistreringen av data i minnet på et bestemt tidspunkt.
  • Dette ligner på å ta et bilde. Når du tar et bilde av en venn, kan et bilde umiddelbart ta opp alle bildene av vennen.
  • Det er to måter å utløse RDB på: den ene er manuell utløsning, og den andre er automatisk utløsning.

Utløs RDB manuelt

Det er to operasjoner for å utløse utholdenhet manuelt:saveOgbgsave.

Hovedforskjellen mellom dem er om de skal blokkere utførelsen av Redis-hovedtråden eller ikke.

1. lagre kommando

Utførelse av lagringskommandoen på klientsiden vil utløse utholdenhet av Redis, men det vil også gjøre Redis i en blokkerende tilstand. Den vil ikke svare på kommandoer sendt av andre klienter før RDB-en fortsetter, så den må brukes med forsiktighet i produksjonsmiljøet.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Prosessen med å utføre kommandoen er vist i figuren 

2. bgsave kommando

  • bgsave (bakgrunnslagring) er en bakgrunnslagring.
  • Den største forskjellen mellom den og lagre-kommandoen er at bgsave vil dele en underordnet prosess for å utføre utholdenhet.
  • Hele prosessen er bare når barneprosessen er gaffel.Det er bare en kort blokkering.
  • Etter at den underordnede prosessen er opprettet, kan hovedprosessen til Redis svare på forespørsler fra andre klienter.

med blokkering av hele prosessensavesammenlignet med kommandoenbgsaveCommand er åpenbart mer egnet for oss å bruke.

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

Utløs RDB automatisk

Etter å ha snakket om manuell utløsning, la oss se på automatisk utløsning.Vi kan konfigurere betingelsene for automatisk utløsning i konfigurasjonsfilen.

1. spar mn

  • save mn betyr at i løpet av m sekunder, hvis n taster endres, utløses utholdenhet automatisk.Parameterne m og n finnes i Redis-konfigurasjonsfilen.
  • Lagre 60 1 betyr for eksempel at i løpet av 60 sekunder, så lenge én nøkkel endres, vil RDB-persistens utløses.
  • Essensen av automatisk utløsning av persistens er at hvis de angitte utløserbetingelsene er oppfylt, vil Redis automatisk utføre bgsave-kommandoen én gang.

Merk: Når flere lagre mn-kommandoer er satt, vil en hvilken som helst betingelse utløse persistens.

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

save 60 10
save 600 20
  • Når Redis-nøkkelverdien endres 60 ganger i løpet av 10-årene, utløses persistens;
  • Hvis Redis-nøkkelen endres innen 60s, og hvis verdien endres mindre enn 10 ganger, vil Redis avgjøre om Redis-nøkkelen har blitt endret minst 600 ganger innen 20s, og i så fall utløse persistens.

2. Flushall

  • Flushall-kommandoen brukes til å tømme Redis-databasen.
  • Den må brukes med forsiktighet i et produksjonsmiljø.
  • Når Redis utfører flushall-kommandoen, utløser den automatisk utholdenhet og sletter RDB-filen.

3. Master-slave-synkroniseringsutløser

I Redis master-slave-replikering, når slavenoden utfører en full replikeringsoperasjon, vil masternoden utføre bgsave-kommandoen for å sende RDB-filen til slavenoden. Denne prosessen utløser automatisk Redis-persistens.

Redis kan spørre om gjeldende konfigurasjonsparametere gjennom kommandoer.

Formatet på spørringskommandoen er:config get xxx

For eksempel, hvis du ønsker å få lagringsnavninnstillingen til en RDB-fil, kan du bruke config get dbfilename .

Utførelseseffekten er som følger:

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

Siden Redis-serveren vil blokkere når RDB-filen lastes inn til innlastingen er fullført, kan det føre til lang tid og nettsiden kan ikke nås.

Hvis du vil slette RDB-bufferfilen dump.rdb til Redis manuelt, kan du bruke følgende kommando for å finne lagringsbanen til dump.rdb-filen▼

find / -name dump.rdb
  • Deretter sletter du dump.rdb cache-filen manuelt via SSH.

Redis setter konfigurasjonen av RDB

Når det gjelder innstilling av RDB-konfigurasjonen, kan du bruke følgende to måter:

  1. Endre Redis-konfigurasjonsfilen manuelt
  2. Bruk kommandolinjeinnstillingene, config set dir "/usr/data" er lagringskommandoen for å endre RDB-filen

Merk: Konfigurasjonen i redis.conf kan fås gjennom config get xxx og modifisert gjennom config set xxx-verdi, og metoden for å manuelt endre Redis-konfigurasjonsfilen er globalt effektiv, det vil si at parameterne som er satt ved å starte Redis-serveren på nytt, vil ikke gå tapt, men endret ved hjelp av kommandoen, vil den gå tapt etter at Redis starter på nytt.

Men hvis du ønsker å endre Redis-konfigurasjonsfilen manuelt for å tre i kraft umiddelbart, må du starte Redis-serveren på nytt, og kommandometoden krever ikke omstart av Redis-serveren.

RDB-filgjenoppretting

Når Redis-serveren starter, hvis RDB-filen dump.rdb finnes i Redis-rotkatalogen, vil Redis automatisk laste inn RDB-filen for å gjenopprette vedvarende data.

Hvis det ikke er noen dump.rdb-fil i rotkatalogen, flytt dump.rdb-filen til rotkatalogen til Redis.

Selvfølgelig er det logginformasjon når Redis starter, som vil vise om RDB-filen er lastet.

Redis-serveren blokkerer mens RDB-filen lastes inn til innlastingen er fullført.

Nå vet vi at RDB-utholdenhet er delt inn i to måter: manuell utløsning og automatisk utløsning:

  1. Fordelen er at lagringsfilen er liten og datagjenoppretting er raskere når Redis startes.
  2. Ulempen er at det er fare for tap av data.

Gjenoppretting av RDB-filer er også veldig enkelt. Bare legg RDB-filene i rotkatalogen til Redis, og Redis vil automatisk laste og gjenopprette data når den starter.

RDB fordeler og ulemper

1) RDB fordeler

Innholdet i RDB er binære data, som opptar mindre minne, er mer kompakte og er mer egnet som sikkerhetskopifil;

RDB er veldig nyttig for katastrofegjenoppretting, det er en komprimert fil som kan overføres til en ekstern server raskere for Redis-tjenestegjenoppretting;

RDB kan forbedre hastigheten til Redis betraktelig, fordi hoved Redis-prosessen vil dele en underordnet prosess for å vedvare data til disk.

Redis-hovedprosessen utfører ikke operasjoner som disk I/O;

Sammenlignet med AOF-formatfiler starter RDB-filer raskere på nytt.

2) Ulemper med RDB

Fordi RDB bare kan lagre data ved et bestemt tidsintervall, vil Redis-data gå tapt i en periode hvis Redis-tjenesten avsluttes ved et uhell i midten;

En prosess der RDB krever hyppige gafler for å holde den på disk ved hjelp av underoppføring.

Hvis datasettet er stort, kan fork være tidkrevende, og hvis datasettet er stort, er CPU-ytelsen dårlig, noe som kan føre til at Redis ikke kan betjene klienter i noen få millisekunder eller til og med et sekund.

Selvfølgelig kan vi også deaktivere utholdenhet for å forbedre utførelseseffektiviteten til Redis.

Hvis du ikke er følsom for tap av data, kan du gjøre dette når klienten kobler til config set save "" Kommando for å deaktivere utholdenhet for Redis.

redis.conf, hvis isaveKommenter alle konfigurasjoner i begynnelsen, og utholdenhet vil også bli deaktivert, men dette gjøres vanligvis ikke.

Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delte "Hva er det fulle navnet til Redis RDB? Redis RDB In-Memory Data Persistence Operation Mode, som vil hjelpe deg.

Velkommen til å dele lenken til denne artikkelen:https://www.chenweiliang.com/cwl-26677.html

Velkommen til Telegram-kanalen til Chen Weiliangs blogg for å få de siste oppdateringene!

🔔 Vær den første til å få den verdifulle "ChatGPT Content Marketing AI Tool Usage Guide" i kanalens toppkatalog! 🌟
📚 Denne guiden inneholder enorm verdi, 🌟Dette er en sjelden mulighet, ikke gå glipp av den! ⏰⌛💨
Del og lik om du vil!
Din deling og likes er vår kontinuerlige motivasjon!

 

发表 评论

E-postadressen din vil ikke offentliggjøres. 必填 项 已 用 * Merkelapp

bla til toppen