Cuprins:
- Date cache în memorie
- Replicarea datelor la sclavi
- Modelarea datelor în magazinele cu valoare-cheie
- Redis include operații pentru incrementarea și diminuarea directă a valorilor cheie, fără a fi nevoie să faceți un set de pași de actualizare a citirii-modificări-actualizare (RMU). Puteți face acest lucru într-o singură tranzacție pentru a vă asigura că nicio altă aplicație nu modifică valoarea în timpul unei actualizări. Aceste operațiuni specifice de tip de date includ adăugarea și eliminarea elementelor în liste și seturi.
- Redis se mândrește cu faptul că este un magazin cu valoare cheie foarte ușoară, dar rapidă. Acesta a fost inițial conceput pentru a fi un magazin în memorie cheie-valoare, dar acum se mândrește cu stocarea de date pe disc.
Video: Cum se deschide o usa de Mercedes sprinter fara cheie 2024
Magazinele de valoare-cheie din NoSQL se referă la viteză. Puteți utiliza diferite tehnici pentru a maximiza viteza respectivă, de la datele cache, până la copiile multiple ale datelor sau utilizând cele mai adecvate structuri de stocare.
Date cache în memorie
Deoarece datele sunt ușor accesate atunci când sunt stocate în memorie cu acces aleatoriu (RAM), alegerea unui depozit cheie-valoare care stochează date în RAM poate accelera semnificativ accesul la date, de costuri mai mari ale serverului.
Deseori, acest compromis merită făcut. Puteți calcula cu ușurință procentajul datelor stocate solicitate frecvent. Dacă știți că cinci procente sunt în general solicitate la fiecare câteva minute, atunci luați cinci la sută din dimensiunea datelor și adăugați acel număr ca spațiu de rezervă RAM pe serverele de bază de date.
Țineți cont de faptul că sistemul de operare, alte aplicații și serverul de bază de date au și cerințe de memorie.
Replicarea datelor la sclavi
În magazinele cu valoare cheie, o cheie particulară este stocată pe unul dintre serverele din cluster. Acest proces se numește partiție cheie . Aceasta înseamnă că, dacă această cheie este solicitată constant, acest nod va primi cea mai mare parte a cererilor. Acest nod, prin urmare, va fi mai lent decât viteza medie a solicitării, afectând potențial calitatea serviciilor pentru utilizatorii dvs.
Pentru a evita această situație, unele magazine cu valoare cheie acceptă adăugarea de replici numai citite, numite și sclavi. Redis, Riak și Aerospike sunt exemple bune. Replicarea permite ca cheia să fie stocată de mai multe ori pe mai multe servere, ceea ce crește viteza de răspuns, dar costă mai mult hardware.
Unele magazine de valoare-cheie garantează că replicile cheii vor avea întotdeauna aceeași valoare ca și masterul. Această garanție se numește a fi pe deplin consecventă. Dacă se întâmplă o actualizare pe serverul principal care deține cheia, toate replicile sunt garantate că sunt actualizate.
Nu toate magazinele cu valoare cheie garantează această stare (de exemplu, Riak), deci dacă este important să fii actualizat la milisecundă, alegeți o bază de date ale cărei replici sunt pe deplin consistente (cum ar fi Aerospike).
Modelarea datelor în magazinele cu valoare-cheie
Multe magazine de valoare-cheie suportă doar structurile de bază pentru tipurile de valori ale acestora, lăsând programatorului aplicației sarcina de a interpreta datele. Suportul de tip simplu de date include, de obicei, șiruri, numere întregi, JSON și valori binare.
Pentru multe cazuri de utilizare, acest lucru funcționează bine, dar uneori este util un acces ușor mai granular la date.Redis, de exemplu, acceptă următoarele tipuri de valori de date:
-
String
-
Listă
-
Set
-
Seturi sortate
-
Hash hărți
-
Arrayuri bit
-
fi interogat pentru potrivirea intervalelor de valori - la fel ca și interogarea unui index de valori sortate după dată, ceea ce este foarte util pentru căutarea unui subset de date tipizate.
Operarea pe date
Redis include operații pentru incrementarea și diminuarea directă a valorilor cheie, fără a fi nevoie să faceți un set de pași de actualizare a citirii-modificări-actualizare (RMU). Puteți face acest lucru într-o singură tranzacție pentru a vă asigura că nicio altă aplicație nu modifică valoarea în timpul unei actualizări. Aceste operațiuni specifice de tip de date includ adăugarea și eliminarea elementelor în liste și seturi.
Aveți posibilitatea să furnizați chiar funcționalități de completare automată pe interfața de utilizator a unei aplicații folosind comanda Redis ZRANGEBYLEX. Această comandă preia un set de chei care se potrivește parțial unui șir. Deci, dacă ați tastat "NoSQL pentru" în bara de căutare a unei aplicații construite pe Redis, ați vedea sugestia "NoSQL For Dummies. "
Evaluarea Redis
Redis se mândrește cu faptul că este un magazin cu valoare cheie foarte ușoară, dar rapidă. Acesta a fost inițial conceput pentru a fi un magazin în memorie cheie-valoare, dar acum se mândrește cu stocarea de date pe disc.
Aveți posibilitatea să utilizați Redis pentru a salva date prin activarea modului AOF (adăugați numai fișier) și instruindu-l pe Redis să forțeze datele pe disc la fiecare interogare (cunoscută sub numele de forțat
fsync flushing ). AOF nu încetinește să scrie, desigur, dar oferă un nivel mai ridicat de durabilitate a datelor. Fiți conștienți, totuși, că este încă posibil să pierdeți până la o secundă de comenzi. De asemenea, Redis a adăugat recent doar suport pentru grupare. De fapt, la momentul acestei scrieri, suportul de grupare Redis se află în faza de testare beta. Din fericire, Redis folosește un model de cluster partajat, cu stăpâni pentru anumite chei și sclavi care nu sunt direct scrise de către un client; numai maestrul face acest lucru. Asigurarea clusterizării partajate nu ar trebui să facă mai ușor pentru Redis implementarea clusterizării fiabile decât pentru bazele de date care permit scrierea tuturor replicilor.
Dacă doriți un strat de cache în memorie foarte rapid, în fața unei alte baze de date - MongoDB sau Riak sunt utilizate frecvent cu Redis - apoi evaluați Redis ca opțiune. Dat fiind că suportul pentru clustering și durabilitatea datelor evoluează, probabil Redis poate depăși alte baze de date back-end.