Programarea cache-ului în 1s-bitrix

Caching-ul este o tehnologie care îmbunătățește performanța sistemului prin evitarea solicitărilor repetate la baza de date. Se folosește în acele cazuri când citirea informațiilor de pe disc (memoria cache creată) este mai productivă decât accesarea bazei de date. Acest lucru se întâmplă, de exemplu, cu un număr mare de solicitări, când crearea unei pagini pentru un utilizator necesită mai mult de 200 de solicitări. Pentru a afișa aceeași pagină pentru 10 utilizatori, veți avea nevoie de 10 ori mai multe resurse. Caching permite eliminarea acestei probleme - majoritatea utilizatorilor vor primi o copie salvată, crearea cărora nu necesită interogări.







În 1C-Bitrix au fost implementate mai multe tipuri de cache, cum ar fi componentele de cache, cache-ul gestionat, cache-ul ne-gestionat și altele.

Lucrul în cache, modalități de a crea

Algoritmul de cache a tuturor tipurilor este aceeași - informațiile din baza de date este solicitată o singură dată - la crearea cache-ul, și apoi afișează utilizatorii deja stocate în memoria cache versiune - a repetatelor apeluri de la baza de date. Diferențele dintre tipurile de cache sunt în procesul de formare a acțiunilor legate de cache și modul în care este actualizat.

Componenta cache (auto-caching) este un mecanism încorporat care vă permite să implementați cache-ul într-un mod simplificat. Chemat printr-o singură linie din fișierul component:

Dacă rezultatul acestui apel este adevărat. atunci aceasta înseamnă că nu există nici o memorie cache și trebuie să fie creată. Dacă rezultatul este fals. atunci conținutul cache-ului va fi afișat și arrayul $ arResult va fi populat. Acest cache depinde de parametrii din array $ arParams. este resetat în timpul specificat în $ arParams ["CACHE_TIME"] și poate fi centralizat pentru a activa / dezactiva prin panoul de control.

Gestionarea cache - diferă de cea precedentă prin faptul că este actualizată în momentul modificării datelor în blocurile de informații. Pentru a lucra, este necesar să se definească definiția constantă ("BX_COMP_MANAGED_CACHE", true); în dbconn.php.







Cache-caching-ul necontrolate implementat de dezvoltatorii de componente pentru Bitrix, depinde de parametrii transmiși și durata de viață a cache-ului.

Cache HTML - cache întreaga pagină. Este logic să includeți pentru pagini rare actualizate.

Salvarea meniului - are propriul algoritm de cache. Cache-ul este gestionat, actualizat când editați meniul sau modificați permisiunile pentru fișiere și foldere.

Problema privind performanța când creați o memorie cache

Cache-ul este un instrument excelent pentru îmbunătățirea performanței proiectului, dar are și dezavantaje. Una dintre ele este necesitatea de a crea un cache în urma loviturii utilizatorului. Aceasta poate fi o problemă dacă site-ul are multe pagini diferite și nu un public mare. În acest caz, vizitele sunt neclare în toate paginile site-ului și probabilitatea ca un vizitator care vizitează o pagină cu o memorie cache deja generată să fie mică.

O situație similară poate apărea, de exemplu, într-un magazin online - un număr mare de secțiuni și carduri ale mărfurilor. Soluția la această problemă poate fi generarea de cache pentru paginile cu program, în loc să se genereze la loviturile utilizatorului. Datorită acestui fapt, chiar și pentru prima dată când un vizitator vizitează site-ul, va vedea o versiune stocată în memoria cache.

Mecanismul creării cache-ului forțat

Pentru a implementa un astfel de mecanism, trebuie să schimbăm componenta care va transmite informațiile noastre. Tot codul responsabil pentru umplerea matricei $ arResult trebuie să fie redat într-o funcție separată, pe care o vom apela la crearea memoriei cache. Mai jos este un exemplu de cod din componenta:

În acest exemplu, folosim clasa standard pentru a lucra cu memoria cache. Metoda InitCache verifică cache-ul în conformitate cu parametrii săi. Dacă există o memorie cache, aceasta va reveni la adevărat. altfel fals. Parametrii funcției în ordinea transmisiei: durata de viață în secunde, identificatorul cache unic, folderul în care este stocată memoria cache (față de dosarul de bază), dosarul de bază pentru memoria cache. În mod prestabilit, directorul de stocare a cache-ului de bază este cache, dar pentru a nu avea calea cache-ului nostru și a cache-ului bitrix, îl plasăm într-un director separat. Dosarul cu memoria cache se află în directorul / bitrix /. prin urmare, toate cache-ul nostru va fi în folderul / bitrix / mycache /

Acum mergeți la scriptul care face cache-ul pentru pagini. Să presupunem că avem un bloc de informații cu partiții și dorim să facem cache-ul pentru fiecare dintre aceste secțiuni. Conținutul fiecărei secțiuni este diferit. Partea principală a scriptului va arăta astfel:

Apoi, trebuie să plasăm acest cod într-un fișier, care va fi numit după program prin cron. După rularea acestuia, vom primi fișierele cu cache-ul terminat în secțiunea / bitrix / mycache /, care va fi utilizată de componenta noastră.







Articole similare

Trimiteți-le prietenilor: