Kakšno je polno ime Redis RDB? Način delovanja obstojnosti pomnilniških podatkov Redis RDB

Polno ime RDB jeRedis database.

  • Kot že ime pove, je RDB zbirka podatkov Redis, ki se uporablja za shranjevanje podatkov.
  • Zato se prek obstojnosti RDB podatki, shranjeni v pomnilniku Redis, zapišejo v datoteko RDB in shranijo na disk, da se doseže obstojnost.
  • Značilnost Redisa je, da lahko obdrži podatke, to je, da zapiše podatke v pomnilnik na disk, da zagotovi, da se podatki ne izgubijo, in lahko tudi naloži podatke z diska v pomnilnik.

Kakšno je polno ime Redis RDB? Način delovanja obstojnosti pomnilniških podatkov Redis RDB

Vse operacije Redisa na začetku temeljijo na pomnilniku, zato je zmogljivost zelo visoka, ko pa se program zapre, se podatki izgubijo.

Zato moramo podatke v pomnilnik zapisovati na disk v določenih intervalih, kar je v žargonu posnetek.

Pri obnovitvi se datoteka posnetka zapiše neposredno v pomnilnik.

To je tudi ena glavnih razlik med Redisom in Memcachedom, ker Memcached nima zmožnosti obstojnosti.

Za obstojnost pomnilniških podatkov Redis nam Redis ponuja naslednje metode:

  • Metoda posnetka (RDB, Redis DataBase): zapis pomnilniških podatkov na disk v binarni obliki v določenem trenutku;
  • Pripni samo datoteko (AOF, samo pripni datoteko), zabeleži vse operacijske ukaze in pripni v datoteko v besedilni obliki;
  • Hibridna obstojnost, nova metoda po Redis 4.0, hibridna obstojnost združuje prednosti RDB in AOF.Pri pisanju najprej zapišite trenutne podatke na začetek datoteke v obliki RDB in nato shranite kasnejše operacijske ukaze v datoteko v obliki AOF, kar lahko ne le zagotovi hitrost ponovnega zagona Redisa, ampak tudi zmanjša tveganje izgube podatkov.

Ker ima vsaka shema obstojnosti posebne scenarije uporabe.

Način delovanja obstojnosti pomnilniških podatkov Redis RDB

  • RDB (Redis DataBase) je postopek zapisovanja spominskega posnetka (Snapshot) v določenem trenutku na disk v binarni obliki.
  • Spominski posnetki so tisto, kar smo povedali zgoraj.Nanaša se na zapis stanja podatkov v pomnilniku v določenem trenutku.
  • To je podobno fotografiranju. Ko fotografirate prijatelja, lahko fotografija takoj zabeleži vse slike prijatelja.
  • Obstajata dva načina sprožitve RDB: eden je ročni sprožilec, drugi pa samodejni sprožilec.

Ročno sprožite RDB

Obstajata dve operaciji za ročno sprožitev obstojnosti:saveInbgsave.

Glavna razlika med njima je, ali blokirati izvajanje glavne niti Redis ali ne.

1. ukaz za shranjevanje

Izvajanje ukaza za shranjevanje na strani odjemalca bo sprožilo obstojnost Redisa, vendar bo Redis tudi povzročil blokiranje. Ne bo se odzval na ukaze, ki jih pošljejo drugi odjemalci, dokler RDB ne bo vztrajen, zato ga je treba uporabljati previdno v proizvodno okolje.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Postopek izvajanja ukaza je prikazan na sliki 

2. ukaz bgsave

  • bgsave (background save) je shranjevanje v ozadju.
  • Največja razlika med njim in ukazom save je, da bo bgsave razcepil podrejeni proces za izvedbo obstojnosti.
  • Celoten proces je le, če je podrejeni proces fork.Obstaja le kratka blokada.
  • Ko je podrejeni proces ustvarjen, se lahko glavni proces Redisa odziva na zahteve drugih strank.

z blokiranjem celotnega procesasavev primerjavi z ukazombgsaveUkaz je očitno bolj primeren za uporabo.

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

Samodejno sproži RDB

Potem ko smo govorili o ročnem sproženju, si poglejmo samodejno sprožitev.V konfiguracijski datoteki lahko konfiguriramo pogoje za samodejno proženje.

1. rešiti mn

  • save mn pomeni, da se obstojnost samodejno sproži v m sekundah, če se spremeni n tipk.Parametra m in n najdete v konfiguracijski datoteki Redis.
  • Na primer, shrani 60 1 pomeni, da se bo v 60 sekundah, dokler se spremeni ena tipka, sprožila obstojnost RDB.
  • Bistvo samodejnega proženja obstojnosti je, da če so izpolnjeni nastavljeni prožilni pogoji, bo Redis samodejno enkrat izvedel ukaz bgsave.

Opomba: Ko je nastavljenih več ukazov save mn, bo kateri koli pogoj sprožil obstojnost.

Na primer, nastavimo naslednja dva ukaza save mn:

save 60 10
save 600 20
  • Ko se vrednost ključa Redis spremeni 60-krat v 10-ih sekundah, se sproži obstojnost;
  • Če se ključ Redis spremeni v 60 s in če se vrednost spremeni manj kot 10-krat, bo Redis ugotovil, ali je bil ključ Redis spremenjen vsaj 600-krat v 20 s, in če je bil, sproži obstojnost.

2. Flushall

  • Ukaz flushall se uporablja za izpiranje baze podatkov Redis.
  • V proizvodnem okolju ga je treba uporabljati previdno.
  • Ko Redis izvede ukaz flushall, sproži samodejno obstojnost in počisti datoteko RDB.

3. Sprožilec sinhronizacije glavni-podrejeni

Ko podrejeno vozlišče Redis izvede celotno operacijo podvajanja, glavno vozlišče izvede ukaz bgsave za pošiljanje datoteke RDB podrejenemu vozlišču. Ta postopek samodejno sproži obstojnost Redis.

Redis lahko prek ukazov poizveduje o trenutnih konfiguracijskih parametrih.

Format ukaza poizvedbe je:config get xxx

Če želite na primer pridobiti nastavitev imena za shranjevanje datoteke RDB, lahko uporabite config get dbfilename .

Učinek izvedbe je naslednji:

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

Ker bo strežnik Redis blokiral nalaganje datoteke RDB, dokler nalaganje ni končano, lahko povzroči dolgo časa in dostop do spletnega mesta ni mogoč.

Če želite ročno izbrisati datoteko predpomnilnika RDB dump.rdb Redisa, lahko uporabite naslednji ukaz, da poiščete pot do shranjevanja datoteke dump.rdb▼

find / -name dump.rdb
  • Nato ročno izbrišite predpomnilniško datoteko dump.rdb prek SSH.

Redis nastavi konfiguracijo RDB

Kar zadeva nastavitev konfiguracije RDB, lahko uporabite naslednja dva načina:

  1. Ročno spremenite konfiguracijsko datoteko Redis
  2. Uporabite nastavitve ukazne vrstice, config set dir "/usr/data" je ukaz za shranjevanje za spreminjanje datoteke RDB

Opomba: Konfiguracijo v redis.conf je mogoče pridobiti prek config get xxx in spremeniti prek config set xxx vrednosti, metoda ročnega spreminjanja konfiguracijske datoteke Redis pa je globalno učinkovita, kar pomeni, da parametri, nastavljeni s ponovnim zagonom strežnika Redis, ne bodo izgubljen, vendar spremenjen z ukazom, bo izgubljen po ponovnem zagonu Redisa.

Vendar, če želite ročno spremeniti konfiguracijsko datoteko Redis, da začne veljati takoj, morate znova zagnati strežnik Redis in ukazna metoda ne zahteva ponovnega zagona strežnika Redis.

Obnovitev datoteke RDB

Ko se strežnik Redis zažene, če datoteka RDB dump.rdb obstaja v korenskem imeniku Redis, bo Redis samodejno naložil datoteko RDB za obnovitev trajnih podatkov.

Če v korenskem imeniku ni datoteke dump.rdb, premaknite datoteko dump.rdb v korenski imenik Redisa.

Seveda obstajajo podatki dnevnika, ko se Redis zažene, ki bodo pokazali, ali je datoteka RDB naložena.

Strežnik Redis blokira med nalaganjem datoteke RDB, dokler nalaganje ni končano.

Zdaj vemo, da je obstojnost RDB razdeljena na dva načina: ročno proženje in samodejno proženje:

  1. Njegova prednost je, da je datoteka za shranjevanje majhna in je obnovitev podatkov hitrejša, ko zaženete Redis.
  2. Slaba stran je, da obstaja nevarnost izgube podatkov.

Obnovitev datotek RDB je prav tako zelo preprosta. Preprosto postavite datoteke RDB v korenski imenik Redisa in Redis bo ob zagonu samodejno naložil in obnovil podatke.

Prednosti in slabosti RDB

1) Prednosti RDB

Vsebina RDB so binarni podatki, ki zavzamejo manj pomnilnika, so bolj kompaktni in primernejši kot varnostna kopija datoteke;

RDB je zelo uporaben za obnovitev po katastrofi, je stisnjena datoteka, ki jo je mogoče hitreje prenesti na oddaljeni strežnik za obnovitev storitve Redis;

RDB lahko močno izboljša hitrost Redisa, ker glavni proces Redis razcepi podrejeni proces, da obdrži podatke na disku.

Glavni proces Redis ne izvaja operacij, kot je disk V/I;

V primerjavi z datotekami formata AOF se datoteke RDB znova zaženejo hitreje.

2) Slabosti RDB

Ker lahko RDB shranjuje podatke samo v določenem časovnem intervalu, bodo podatki Redis izgubljeni za določen čas, če se storitev Redis po nesreči prekine;

Postopek, v katerem RDB zahteva pogoste razcepitve, da se shrani na disk z uporabo podvnosa.

Če je nabor podatkov velik, lahko fork vzame veliko časa, in če je nabor podatkov velik, je zmogljivost procesorja slaba, kar lahko povzroči, da Redis ne more služiti strankam nekaj milisekund ali celo sekundo.

Seveda lahko tudi onemogočimo vztrajnost, da izboljšamo učinkovitost izvajanja Redisa.

Če niste občutljivi na izgubo podatkov, lahko to storite, ko se odjemalec poveže config set save "" Ukaz za onemogočanje obstojnosti za Redis.

redis.conf, če vsaveKomentirajte vse konfiguracije na začetku in obstojnost bo tudi onemogočena, vendar se to običajno ne naredi.

发表 评论

您的邮箱地址不会被公开。 必填 项 已 用 * Oznaka

Imenik člankov
Pomaknite se na vrh