Kio estas la plena nomo de Redis RDB? Redis RDB-memordatuma persista operacia reĝimo

La plena nomo de RDB estasRedis database.

  • Kiel la nomo sugestas, RDB estas Redis-datumbazo uzata por stoki datumojn.
  • Tial, per RDB-persistemo, la datumoj stokitaj en la Redis-memoro estas skribitaj al la RDB-dosiero kaj konservitaj al la disko por atingi persiston.
  • La trajto de Redis estas, ke ĝi povas persisti datumojn, tio estas, skribi datumojn en memoro al disko por certigi, ke neniu datumo estas perdita, kaj ankaŭ povas ŝargi datumojn de disko en memoron.

Kio estas la plena nomo de Redis RDB? Redis RDB-memordatuma persista operacia reĝimo

La operacioj de Redis komence estas ĉiuj bazitaj sur memoro, do la agado estas tre alta, sed post kiam la programo estas fermita, la datumoj perdiĝas.

Tial ni devas skribi en-memorajn datumojn al disko je specifitaj intervaloj, kio estas Momentfoto en ĵargono.

Dum restarigo, la momentfoto dosiero estas skribita rekte al memoro.

Ĉi tio ankaŭ estas unu el la ĉefaj diferencoj inter Redis kaj Memcached, ĉar Memcached ne havas persistan kapablon.

Por la persisto de Redis-memordatenoj, Redis provizas al ni la sekvajn metodojn:

  • Snapshot-metodo (RDB, Redis DataBase): skribu memordatenojn al disko en binara formo en certa momento;
  • Aldonu Nur Dosieron (AOF, Aldonu Nur Dosiero), registri ĉiujn operaciajn komandojn, kaj aldonu al la dosiero en teksta formo;
  • Hibrida persisto, nova metodo post Redis 4.0, hibrida persisto kombinas la avantaĝojn de RDB kaj AOF.Skribante, unue skribu la aktualajn datumojn al la komenco de la dosiero en la formo de RDB, kaj poste konservu la postajn operaciajn komandojn al la dosiero en la formo de AOF, kiu ne nur povas certigi la rapidecon de Redis rekomenco, sed ankaŭ redukti. la risko de perdo de datumoj.

Ĉar ĉiu persistadskemo havas specifajn uzajn scenarojn.

Redis RDB-memordatuma persista operacia reĝimo

  • RDB (Redis DataBase) estas la procezo de skribi memorfoton (Snapshot) en certa momento al disko en binara formo.
  • Memorfotoj estas tio, kion ni diris supre.Ĝi rilatas al la ŝtata rekordo de datumoj en memoro en certa momento.
  • Ĉi tio similas al preni foton. Kiam vi prenas foton de amiko, foto povas tuj registri ĉiujn bildojn de la amiko.
  • Estas du manieroj ekigi RDB: unu estas mana ekigado, kaj la alia estas aŭtomata ekigado.

Mane ekigi la RDB

Estas du operacioj por mane ekigi persiston:savebgsave.

La ĉefa diferenco inter ili estas ĉu aŭ ne bloki la ekzekuton de la ĉefa fadeno de Redis.

1. savu komandon

Efektivigi la konservan komandon ĉe la klientflanko ekigos la persiston de Redis, sed ĝi ankaŭ faros Redis en bloka stato.Ĝi ne respondos al komandoj senditaj de aliaj klientoj ĝis la RDB estas persistita, do ĝi devas esti uzata singarde en la produktadmedio.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

La procezo de ekzekuto de la komando estas montrita en la figuro 

2. komando bgsave

  • bgsave (fonkonservado) estas fonkonservado.
  • La plej granda diferenco inter ĝi kaj la konserva komando estas, ke bgsave forkos infanan procezon por plenumi persiston.
  • La tuta procezo estas nur kiam la infana procezo estas forko.Estas nur mallonga blokado.
  • Post kiam la infana procezo estas kreita, la ĉefa procezo de Redis povas respondi al petoj de aliaj klientoj.

kun blokado de la tuta procezosavekompare kun la komandobgsaveKomando estas evidente pli taŭga por ni uzi.

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

Aŭtomate ekfunkciigu RDB

Post paroli pri mana ekigado, ni rigardu aŭtomatan ekigadon.Ni povas agordi la kondiĉojn por aŭtomata ekfunkciigo en la agorda dosiero.

1. savi mn

  • ŝpari mn signifas, ke ene de m sekundoj, se n klavoj ŝanĝiĝas, persisto estas aŭtomate ekigita.Parametroj m kaj n troviĝas en la agorda dosiero de Redis.
  • Ekzemple, konservi 60 1 signifas, ke ene de 60 sekundoj, kondiĉe ke unu ŝlosilo ŝanĝiĝas, RDB-persistemo estos ekigita.
  • La esenco de aŭtomate ekigado de persisto estas, ke se la fiksitaj ellasilkondiĉoj estas plenumitaj, Redis aŭtomate ekzekutos la komandon bgsave unufoje.

Noto: Kiam pluraj save mn-komandoj estas agordita, iu ajn kondiĉo ekigos persiston.

Ekzemple, ni starigas la sekvajn du sav-mn-ordonojn:

save 60 10
save 600 20
  • Kiam la ŝlosila valoro de Redis ŝanĝiĝas 60 fojojn ene de 10'oj, persisto estos ekigita;
  • Se la Redis-ŝlosilo ŝanĝiĝas ene de 60-aj jaroj, kaj se la valoro ŝanĝiĝas malpli ol 10 fojojn, Redis determinos ĉu la Redis-ŝlosilo estis modifita almenaŭ 600 fojojn ene de 20-aj jaroj, kaj se jes, ekfunkciigos persiston.

2. Flushall

  • La flushall-komando estas uzata por purigi la Redis-datumbazon.
  • Ĝi devas esti uzata singarde en produktadmedio.
  • Kiam Redis plenumas la flushall-komandon, ĝi ekigas aŭtomatan persiston kaj purigas la RDB-dosieron.

3. Majstro-sklava sinkroniga ellasilo

En Redis-mastro-sklava reproduktado, kiam la sklava nodo plenumas plenan reproduktan operacion, la majstra nodo plenumos la komandon bgsave por sendi la RDB-dosieron al la sklava nodo. Ĉi tiu procezo aŭtomate ekigas Redis-persistemon.

Redis povas pridemandi la nunajn agordajn parametrojn per komandoj.

La formato de la demanda komando estas:config get xxx

Ekzemple, se vi volas akiri la stokadnomon de RDB-dosiero, vi povas uzi config get dbfilename .

La efektiviga efiko estas kiel sekvas:

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

Ĉar la Redis-servilo blokos dum ŝarĝo de la RDB-dosiero ĝis la ŝarĝo finiĝos, ĝi povas kaŭzi longan tempon kaj la retejo ne alireblas.

Se vi volas mane forigi la RDB-kaŝmemordosieron dump.rdb de Redis, vi povas uzi la jenan komandon por trovi la stokan vojon de la dump.rdb-dosiero▼

find / -name dump.rdb
  • Tiam, permane forigu la dump.rdb kaŝmemordosieron per SSH.

Redis fiksas la agordon de RDB

Koncerne agordon de la agordo de RDB, vi povas uzi la jenajn du manierojn:

  1. Mane modifi la agordan dosieron de Redis
  2. Uzu la komandliniajn agordojn, agordo dir "/usr/data" estas la stoka komando por modifi la RDB-dosieron

Noto: La agordo en redis.conf povas esti akirita per config get xxx kaj modifita per config set xxx-valoro, kaj la metodo mane modifi la agordan dosieron de Redis estas tutmonde efika, tio estas, la parametroj fiksitaj per rekomenco de la Redis-servilo ne estos. estos perdita, sed modifita per la komando , ĝi estos perdita post Redis rekomenco.

Tamen, se vi volas mane modifi la Redis-agordan dosieron por efiki tuj, vi devas rekomenci la Redis-servilon, kaj la komanda metodo ne postulas rekomenci la Redis-servilon.

RDB-dosierreakiro

Kiam la Redis-servilo komenciĝas, se la RDB-dosiero dump.rdb ekzistas en la radika dosierujo de Redis, Redis aŭtomate ŝargos la RDB-dosieron por restarigi konstantajn datumojn.

Se ne estas dump.rdb dosiero en la radika dosierujo, bonvolu movi la dump.rdb dosieron al la radika dosierujo de Redis.

Kompreneble, estas protokolaj informoj kiam Redis komenciĝas, kiu montros ĉu la RDB-dosiero estas ŝarĝita.

La Redis-servilo blokas dum ŝarĝo de la RDB-dosiero ĝis la ŝarĝo finiĝas.

Nun ni scias, ke RDB-persistemo estas dividita en du manierojn: mana ekigado kaj aŭtomata ekigado:

  1. Ĝia avantaĝo estas, ke la stokaddosiero estas malgranda kaj la reakiro de datumoj estas pli rapida kiam Redis estas komencita.
  2. La malavantaĝo estas, ke ekzistas risko de perdo de datumoj.

La reakiro de RDB-dosieroj ankaŭ estas tre simpla.Nur metu la RDB-dosierojn en la radikan dosierujon de Redis, kaj Redis aŭtomate ŝargos kaj restarigos datumojn kiam ĝi komenciĝas.

RDB avantaĝoj kaj malavantaĝoj

1) Avantaĝoj de RDB

RDB-enhavo estas binaraj datumoj, okupas malpli da memoro, estas pli kompakta kaj pli taŭgas kiel rezerva dosiero;

RDB estas tre utila por katastrofa reakiro, ĝi estas kunpremita dosiero kiu povas esti translokigita al fora servilo pli rapide por Redis-serva reakiro;

RDB povas multe plibonigi la rapidecon de Redis, ĉar la ĉefa Redis-procezo forkos infanan procezon por konservi datumojn al disko.

La ĉefa procezo de Redis ne faras operaciojn kiel disko I/O;

Kompare kun AOF-formataj dosieroj, RDB-dosieroj rekomencas pli rapide.

2) Malavantaĝoj de RDB

Ĉar RDB povas nur konservi datumojn je certa tempointervalo, se la Redis-servo estas hazarde ĉesigita en la mezo, la Redis-datumoj estos perditaj dum tempodaŭro;

Procezo en kiu RDB postulas oftajn forkojn konservi ĝin sur disko uzante subeniron.

Se la datumaro estas granda, forko povas esti tempopostula, kaj se la datumaro estas granda, la CPU-efikeco estas malbona, kio povas kaŭzi ke Redis ne povas servi klientojn dum kelkaj milisekundoj aŭ eĉ sekundo.

Kompreneble, ni ankaŭ povas malŝalti persiston por plibonigi la ekzekutan efikecon de Redis.

Se vi ne estas sentema al perdo de datumoj, vi povas fari tion kiam la kliento konektas config set save "" Komando malŝalti persiston por Redis.

Enredis.conf, se ensaveKomentu ĉiujn agordojn komence, kaj persisto ankaŭ estos malŝaltita, sed ĉi tio ĝenerale ne estas farita.

Lasu komenton

Via retadreso ne estos publikigita. Bezonataj kampoj estas uzataj * Etikedo

Rulumu al Supro