Memcached – Ce Este și Cum Să-l Utilizați
Câte tipuri de cache cunoașteți și utilizați pe site-ul dvs. WordPress?
Dacă utilizați un plugin de cache WordPress precum WP Rocket, nu există nicio îndoială că profitați deja de browserul său și de funcțiile de cache ale paginilor. Și dacă utilizați și opțiunile sale avansate de stocare în cache, atunci site-ul dvs. se bucură și de stocarea în cache a utilizatorilor și a dispozitivelor mobile.
Apoi, există stocarea în cache a serverului (cum ar fi Varnish sau NGINX) și stocarea în cache a CDN: prima depinde de găzduirea pe care o utilizați, în timp ce a doua pe serviciul CDN pe care l-ați ales.
Ultimul tip de stocare în cache pe care doriți să îl adăugați la grup este object caching: acest lucru este important pentru a face ca interogările din baza de date să ruleze mai repede și pentru a îmbunătăți în cele din urmă viteza site-ului web.
În această postare, vom explora secretele stocării în cache a obiectelor și ne vom scufunda într-unul dintre cele mai populare sisteme de object caching: Memcached.
Memcached nu trebuie confundat cu memcache, care este o extensie PHP creată pentru serviciul de cache Memcached și nu intră în sfera acestui articol.
Memcached și Object Caching Explicat Pe Înțelesul Tuturor
Înainte de a intra în detaliile Memcached, să explicăm cu exactitate ce face object caching.
Dacă stocarea în cache a paginilor se ocupă de stocarea în cache a resurselor statice (imagini, fișiere HTML, CSS și JS) și stocarea în cache a browserului gestionează aceleași resurse în browser, object caching este dedicată bazei de date.
Scopul object caching este de a memora în cache rezultatele interogărilor din baza de date. Puteți găsi o explicație detaliată a ceea ce este object caching pe blogul nostru.
O bază de date eficientă este unul dintre factorii cruciali pentru un site web rapid: WordPress este un sistem de gestionare a conținutului care depinde în mod natural de baza de date MySQL.
De fiecare dată când utilizatorii (sau crawlerele) fac o solicitare pe site-ul dvs. web, generează interogări în baza de date. Dacă site-ul dvs. întâmpină un număr mare de solicitări către baza de date, interogările se pot acumula rapid, copleșind serverul și încetinind site-ul web.
Vestea bună este că WordPress a introdus clasa de object caching cu mult timp în urmă: în 2005 a fost implementată clasa numită WP_Object_Cache în nucleul WordPress.
Ce face WordPress Object Caching?
Memorarea în object caching, WordPress salvează o copie a interogărilor complexe și le stochează rezultatele într-un tabel de baze de date (adică, ca o redirecționare HTTPS).
Cele mai frecvent utilizate interogări care rulează pe paginile site-ului dvs. sunt stocate în baza de date: această copie a cererilor vă permite să reduceți timpul de încărcare și să vă faceți site-ul web mai performant.
Desigur, acest proces nu este o prerogativă a site-urilor WordPress: același lucru se întâmplă pe toate site-urile în care a fost implementat un sistem de object caching.
De exemplu, Drupal, care este un alt sistem de gestionare a conținutului foarte popular, implementează un sistem similar de cache încorporat.
Dacă object caching funcționează, serverul dvs. nu va trebui să regenereze de fiecare dată rezultatele interogărilor, dar poate utiliza stratul de object caching creat anterior.
Pentru a stoca un object caching, puteți utiliza diferite tehnologii: printre cele mai populare motoare de object caching sunt Memcached, Redis și APC.
Ce este Memcached?
Memcached este un sistem de stocare în memorie distribuit open source creat pentru a ușura încărcarea bazei de date pentru aplicații web dinamice, cum ar fi magazinele de comerț electronic sau site-urile web unde este necesară autentificarea/înregistrarea.
Memcached a fost dezvoltat inițial de Brad Fitzpatrick în 2003 și este acum utilizat de Facebook, Twitter, YouTube, Wikipedia și alte aplicații web mari și mici.
Dezvoltatorii săi îl definesc astfel:
Memcached este un depozit de valori-cheie în memorie pentru date arbitrare mici (șiruri, obiecte) din rezultatele apelurilor la baze de date, apeluri API sau redarea paginilor. (Sursă🙂
Acest sistem stochează date key-values pentru șir și obiecte, cum ar fi:
- Apeluri API
- Redarea paginilor
- Rezultatele apelurilor bazei de date
Memcached folosește o arhitectură client-server bazată pe patru componente:
- Un client-server, care păstrează lista serverelor Memcached disponibile
- Un algoritm de hash bazat pe client, care preia un server pe baza „cheii” solicitate.
- Un software de server, care stochează combinațiile de valori + cheie într-un tabel de hash intern
Un algoritm Least Recent Used (LRU), care decide când să folosească datele vechi sau memoria.
Cum Funcționează Memcached
Memcached funcționează ca și alte sisteme de cache, dar acum baza de date se află în centrul procesului.
Să vedem fluxul de lucru în cinci pași rapizi:
- Client-server primește o interogare de la un utilizator (adică, acces la o anumită adresă URL a unui site web cu o redirecționare HTTPS);
- Client-server verifică cu serverul Memcached dacă datele necesare sunt deja stocate în memoria sa;
- Dacă datele există, Memcached le returnează direct la serverul client;
- Dacă datele nu sunt deja salvate în cache, Memcached transmite solicitarea către baza de date;
- Datele solicitate sunt redirecționate acum către client-server și în același timp, indexul Memcache este actualizat cu aceste ultime valori: memoria cache este acum gata pentru a fi utilizată în viitor (vezi pasul 3).
De obicei, Memcached este configurat prin diferite servere și clienți Memcached, care ajută la distribuirea încărcării cererilor.
Client-server folosește algoritmul de hashing pentru a decide ce server Memcached trebuie trimisă cererea.
Este important să rețineți că serverele Memcached nu partajează date: deci baza de date trimite date numai către un server Memcached la un moment dat.
Cum să Utilizați Memcached pe Site-ul dvs. WordPress?
Prima condiție pentru a utiliza Memcached pe site-ul dvs. WordPress este ca serverul dvs. de găzduire să îl aibă instalat. A doua condiție este ca aplicația dvs. web să accepte Memcached.
Deoarece Memcached se bazează exclusiv pe RAM, nu necesită prea multe resurse CPU.
Mai multe servicii de găzduire web vin cu sistem Memcached preinstalat pe serverele lor cloud: puteți găsi câteva exemple pe A2 Hosting, Cloudways sau Siteground.
Dacă serverul dvs. acceptă Memcached, este foarte probabil să îl puteți utiliza prin extensia PHP Memcached pre-construită.
Care Sunt Avantajele Utilizării Memcached pe Site-ul dvs. WordPress?
Principalul avantaj al Memcached este că toate informațiile sunt stocate în RAM: aceasta înseamnă că nu trebuie încărcate de pe disc de fiecare dată.
Un alt avantaj este că nu există restricții de date: puteți utiliza Memcached pentru a memora în cache mai multe date diferite, cum ar fi documente, imagini, dar mai ales, structuri mult mai complexe.
În plus, în funcție de mediul de utilizare configurat, eșecul unuia dintre serverele Memcached nu este de obicei critic. De cele mai multe ori, de fapt Memcached este folosit ca memorie cache numai pentru citire sau pentru a păstra informații temporare. Dacă îl utilizați pentru date persistente, puteți trece la o metodă alternativă de căutare care reîncarcă datele în memoria RAM a unui alt server.
WP Rocket este Compatibil cu Memcached?
Fiind un plugin axat pe stocarea în cache a paginilor, WP Rocket nu se ocupă de object caching. Deci, nu veți găsi nicio opțiune Memcached specifică.
Acest lucru nu înseamnă că nu puteți utiliza Memcached cu WP Rocket! Pentru a utiliza WP Rocket și Memcached împreună, va trebui să instalați un plugin suplimentar.