Care este numele complet al Redis RDB? Modul de funcționare a persistenței datelor de memorie Redis RDB

Numele complet al RDB esteRedis database.

  • După cum sugerează și numele, RDB este o bază de date Redis folosită pentru stocarea datelor.
  • Prin urmare, prin persistența RDB, datele stocate în memoria Redis sunt scrise în fișierul RDB și salvate pe disc pentru a obține persistență.
  • Caracteristica Redis este că poate persista date, adică poate scrie date în memorie pe disc pentru a se asigura că nu se pierde nicio dată și poate încărca, de asemenea, date de pe disc în memorie.

Care este numele complet al Redis RDB? Modul de funcționare a persistenței datelor de memorie Redis RDB

Operațiunile Redis la început sunt toate bazate pe memorie, deci performanța este foarte mare, dar odată ce programul este închis, datele se pierd.

Prin urmare, trebuie să scriem date în memorie pe disc la intervale specificate, care este Snapshot în jargon.

La restaurare, fișierul instantaneu este scris direct în memorie.

Aceasta este, de asemenea, una dintre principalele diferențe dintre Redis și Memcached, deoarece Memcached nu are capacitatea de persistență.

Pentru persistența datelor de memorie Redis, Redis ne pune la dispoziție următoarele metode:

  • Metoda Snapshot (RDB, Redis DataBase): scrieți datele de memorie pe disc în formă binară la un moment dat;
  • Adăugați numai fișier (AOF, Adăugați numai fișier), înregistrați toate comenzile de operare și adăugați fișierului sub formă de text;
  • Persistența hibridă, o nouă metodă după Redis 4.0, persistența hibridă combină avantajele RDB și AOF.Când scrieți, scrieți mai întâi datele curente la începutul fișierului sub formă de RDB și apoi salvați comenzile de operare ulterioare în fișier sub formă de AOF, care nu numai că poate asigura viteza de repornire Redis, ci și reduce. riscul pierderii datelor.

Pentru că fiecare schemă de persistență are scenarii de utilizare specifice.

Modul de funcționare a persistenței datelor de memorie Redis RDB

  • RDB (Redis DataBase) este procesul de scriere a unui instantaneu de memorie (Snapshot) la un anumit moment pe disc în formă binară.
  • Instantaneele de memorie sunt ceea ce am spus mai sus.Se referă la înregistrarea de stare a datelor din memorie la un anumit moment.
  • Acest lucru este similar cu realizarea unei fotografii. Când faceți o fotografie a unui prieten, o fotografie poate înregistra instantaneu toate imaginile prietenului.
  • Există două moduri de a declanșa RDB: una este declanșarea manuală, iar cealaltă este declanșarea automată.

Declanșați manual RDB

Există două operații pentru a declanșa manual persistența:savebgsave.

Principala diferență dintre ele este dacă să blochezi sau nu execuția firului principal Redis.

1. comanda salvare

Executarea comenzii de salvare pe partea clientului va declanșa persistența Redis, dar va face și Redis într-o stare de blocare.Nu va răspunde la comenzile trimise de alți clienți până când RDB-ul este persistent, așa că trebuie utilizat cu prudență în mediul de producție.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Procesul de executare a comenzii este prezentat în figură 

2. comanda bgsave

  • bgsave (salvare în fundal) este o salvare în fundal.
  • Cea mai mare diferență între aceasta și comanda de salvare este că bgsave va fork un proces copil pentru a efectua persistență.
  • Întregul proces are loc numai atunci când procesul copil este fork.Există doar un scurt blocaj.
  • După ce procesul copil este creat, procesul principal al Redis poate răspunde la solicitările altor clienți.

cu blocarea întregului processavecomparativ cu comandabgsaveComanda este, evident, mai potrivită pentru noi.

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

Declanșează automat RDB

După ce am vorbit despre declanșarea manuală, să ne uităm la declanșarea automată.Putem configura condițiile pentru declanșarea automată în fișierul de configurare.

1. salva mn

  • save mn înseamnă că în m secunde, dacă n taste se schimbă, persistența este declanșată automat.Parametrii m și n pot fi găsiți în fișierul de configurare Redis.
  • De exemplu, salvarea 60 1 înseamnă că în 60 de secunde, atâta timp cât o cheie se schimbă, persistența RDB va fi declanșată.
  • Esența declanșării automate a persistenței este că, dacă sunt îndeplinite condițiile de declanșare setate, Redis va executa automat comanda bgsave o dată.

Notă: Când sunt setate mai multe comenzi de salvare mn, orice condiție va declanșa persistența.

De exemplu, setăm următoarele două comenzi save mn:

save 60 10
save 600 20
  • Când valoarea cheii Redis se modifică de 60 ori în 10 de secunde, persistența va fi declanșată;
  • Dacă cheia Redis se modifică în 60 de secunde și dacă valoarea se modifică de mai puțin de 10 ori, Redis va determina dacă cheia Redis a fost modificată de cel puțin 600 de ori în 20 de secunde și, dacă da, va declanșa persistența.

2. Flushall

  • Comanda flushall este folosită pentru a șterge baza de date Redis.
  • Trebuie utilizat cu prudență într-un mediu de producție.
  • Când Redis execută comanda flushall, declanșează persistența automată și șterge fișierele RDB.

3. Declanșator de sincronizare master-slave

În replicarea master-slave Redis, când nodul slave efectuează o operație de replicare completă, nodul master va executa comanda bgsave pentru a trimite fișierul RDB către nodul slave. Acest proces declanșează automat persistența Redis.

Redis poate interoga parametrii de configurare actuali prin comenzi.

Formatul comenzii de interogare este:config get xxx

De exemplu, dacă doriți să obțineți setarea numelui de stocare pentru un fișier RDB, puteți utiliza config get dbfilename .

Efectul de execuție este următorul:

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

Deoarece serverul Redis se va bloca la încărcarea fișierului RDB până la finalizarea încărcării, poate cauza o perioadă lungă de timp și site-ul web nu poate fi accesat.

Dacă doriți să ștergeți manual fișierul cache RDB dump.rdb al Redis, puteți utiliza următoarea comandă pentru a găsi calea de stocare a fișierului dump.rdb▼

find / -name dump.rdb
  • Apoi, ștergeți manual fișierul cache dump.rdb prin SSH.

Redis setează configurația RDB

În ceea ce privește setarea configurației RDB, puteți utiliza următoarele două moduri:

  1. Modificați manual fișierul de configurare Redis
  2. Utilizați setările liniei de comandă, config set dir "/usr/data" este comanda de stocare pentru a modifica fișierul RDB

Notă: Configurația din redis.conf poate fi obținută prin config get xxx și modificată prin valoarea config set xxx, iar metoda de modificare manuală a fișierului de configurare Redis este eficientă la nivel global, adică parametrii stabiliți prin repornirea serverului Redis nu vor fi pierdut, dar modificat folosind comanda , acesta va fi pierdut după repornirea Redis.

Cu toate acestea, dacă doriți să modificați manual fișierul de configurare Redis pentru a avea efect imediat, trebuie să reporniți serverul Redis, iar metoda de comandă nu necesită repornirea serverului Redis.

Recuperare fișier RDB

Când serverul Redis pornește, dacă fișierul RDB dump.rdb există în directorul rădăcină Redis, Redis va încărca automat fișierul RDB pentru a restabili datele persistente.

Dacă nu există niciun fișier dump.rdb în directorul rădăcină, mutați mai întâi fișierul dump.rdb în directorul rădăcină al lui Redis.

Desigur, există informații de jurnal când pornește Redis, care vor arăta dacă fișierul RDB este încărcat.

Serverul Redis se blochează în timpul încărcării fișierului RDB până când încărcarea este completă.

Acum știm că persistența RDB este împărțită în două moduri: declanșare manuală și declanșare automată:

  1. Avantajul său este că fișierul de stocare este mic și recuperarea datelor este mai rapidă atunci când este pornit Redis.
  2. Dezavantajul este că există riscul pierderii datelor.

Recuperarea fișierelor RDB este, de asemenea, foarte simplă. Doar puneți fișierele RDB în directorul rădăcină al Redis, iar Redis va încărca și restabili automat datele când pornește.

Avantaje și dezavantaje RDB

1) Avantajele RDB

Conținutul RDB este date binare, ocupă mai puțină memorie, este mai compact și este mai potrivit ca fișier de rezervă;

RDB este foarte util pentru recuperarea în caz de dezastru, este un fișier comprimat care poate fi transferat mai rapid pe un server la distanță pentru recuperarea serviciului Redis;

RDB poate îmbunătăți foarte mult viteza de rulare a Redis, deoarece procesul principal Redis va transforma un proces copil pentru a persista datele pe disc.

Procesul principal Redis nu efectuează operațiuni precum I/O pe disc;

În comparație cu fișierele în format AOF, fișierele RDB repornesc mai repede.

2) Dezavantajele RDB

Deoarece RDB poate salva date doar la un anumit interval de timp, dacă serviciul Redis este oprit accidental la mijloc, datele Redis se vor pierde pentru o perioadă de timp;

Un proces în care RDB necesită bifurcări frecvente pentru a-l păstra pe disc folosind subintrare.

Dacă setul de date este mare, fork poate consuma mult timp, iar dacă setul de date este mare, performanța procesorului este slabă, ceea ce poate face ca Redis să nu poată servi clienții pentru câteva milisecunde sau chiar o secundă.

Desigur, putem dezactiva și persistența pentru a îmbunătăți eficiența execuției Redis.

Dacă nu sunteți sensibil la pierderea datelor, puteți face acest lucru atunci când clientul se conectează config set save "" Comanda pentru a dezactiva persistența pentru Redis.

înredis.conf, dacă însaveComentați toate configurațiile la început și persistența va fi, de asemenea, dezactivată, dar acest lucru nu se face în general.

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) a distribuit „Care este numele complet al Redis RDB? Modul de operare Redis RDB In-Memory Data Persistence, care este util pentru dvs.

Bine ați venit să distribuiți linkul acestui articol:https://www.chenweiliang.com/cwl-26677.html

Bun venit pe canalul Telegram al blogului lui Chen Weiliang pentru a primi cele mai recente actualizări!

🔔 Fii primul care primește valorosul „Ghid de utilizare a instrumentului AI pentru marketing de conținut ChatGPT” în directorul de top al canalului! 🌟
📚 Acest ghid conține o valoare uriașă, 🌟Aceasta este o oportunitate rară, nu o ratați! ⏰⌛💨
Distribuie si da like daca iti place!
Partajarea și like-urile tale sunt motivația noastră continuă!

 

发表 评论

Adresa ta de email nu va fi publicată. Sunt utilizate câmpurile obligatorii * Eticheta

derulați în sus