• Početna
  • O nama
  • LimundoGrad
  • Limundo
  • Kupindo
  • Sigurnost
  • IT
  • Zabava i učenje
  • Plaćanje
  • API
LimundoGrad blog
  • Početna
  • O nama
  • LimundoGrad
  • Limundo
  • Kupindo
  • Sigurnost
  • IT
  • Zabava i učenje
  • Plaćanje
  • API
Home  /  IT  /  PHP preporuke petkom – keširanje

PHP preporuke petkom – keširanje

Autor:Miodrag Stefanović
14. децембра 2012. IT saveti 3 komentara

Keširanje sadržaja

Kod kompleksnijih sajtova i sajtova koji imaju veću posetu, generisanje sadržaja stalnim povlačenjem podataka iz baze može ozbiljno da ugrozi brzinu otvaranja stranica sajta, pa i njegovu generalnu stabilnost. Jedan od načina rešavanja ovog problema je naravno optimizacija SQL upita, ali često je brži i efikasniji način (ili bar komplementarni) – keširanje sadržaja.
Reč Keš (caché) je francuskog porekla i označava nešto što je skriveno, keš memorija je skrivena memorija u kojoj se čuvaju već pripremljeni podaci.

Preuzeto sa xkcd


Keširanje sadržaja je najefikasnije za podatke koji se retko menjaju (na primeru sajta biblioteke to je opis knjige, autor i drugi podaci o knjizi).
Keširanje u najprostijem obliku je proces čuvanja jednom generisane stranice ili dela stranice na nekom medijumu za čuvanje podataka (disk, memorija, …) i njegovo prikazivanje direktnim povlačenjem sa medijuma, umesto ponovnog generisanja nizom upita u bazu podataka.
Samo keširanje je široka tema, ali moja preporuka za manje i srednje zahtevne sajtove je korišćenje Cache_litePear paketa za keširanje na disku

Primer prostog načina korišćenja cache_lite sistema može da izgleda ovako:

<?php    
    require_once ‘Cache/Lite.php’; //Uvuci cache_lite klase
    $options = array(    
       ‘cacheDir’ => ‘cache/ZaStranice/’,    
       ‘writeControl’ => ‘true’,    
       ‘readControl’ => ‘true’,    
       ‘fileNameProtection’ => false,    
       ‘readControlType’ => ‘md5’,
       ‘hashedDirectoryLevel’ => 0,
       ‘lifetime’ => 3600,
       ‘automaticSerialization’ => true
    );//Definicija parametara kesiranja
$cacheOutput = new Cache_Lite_Output($options);//Instanciranje objekta za upravljanje kesiranjem
if(!$cacheOutput->start(“IDStranice”, “GrupaStranice”)) { //Ako sadrzaj nije bio kesiran do sada, generisi ga na standardan nacin ?>

HTML sadržaj

<?php $cacheOutput->end();//Pisanje generisanog sadrzaja na disk radi kasnijeg koriscenja }?>

U gornjem primeru cache_lite objekat proverava da li je sadržaj ranije iskeširan, ukoliko jeste – keširani sadržaj će biti dovučen iz direktorijuma cache/ZaStranice/, a ukoliko nije – generisaće sadržaj podacima iz baze i snimiće ga u dati direktorijum. Keširani sadržaj je moguće ručno invalidirati (svodi se na brisanje keš fajlova) u slučaju da se podaci promene. Takođe je moguče definisati interval vremena nakon koga će se keširani sadržaj automatski invalidirati, u gornjem primeru je to 3600 sekundi (jedan sat).

Keširanje na disku može da izazove probleme u slučaju velikog broja čitanja sa deljenog diska (Npr NFS), i trebalo bi ga izbegavati u tom slučaju (eventualno koristiti lokalne diskove).
U slučaju zahtevnijeg sistema, možete proučiti i koristiti Redis key-value repozitorijum za keširanje u memoriji.

Keširanje sadržaja koji se retko menja je korisno za rasterećenje baze podataka (u slučaju da vam je ona usko grlo).

Ukoliko imate pitanja ili želite da podelite svoja iskustva i preporuke,
tvitamo se na @LimundoGradnja

Podeli tekst
Share on Facebook
Share on Twitter
Share on Whatsapp
 Prethodni post Stiže Deda Mraz!
Sledeći post   GLASANJE za najoriginalniji predmet na Kupindu

Povezani postovi

  • Dobro informisani = bolje zaštićeni! Kako do sigurne kupovine?

    15. марта 2024.
  • 5 predmeta koji će vam olakšati pripremanje trpeze

    6. јануара 2021.
  • Pomoć u odabiru prave knjige za poklon

    10. новембра 2020.

komentara

  1. Miroslav
    15. децембра 2012. at 14:35

    Sta sad ti naprica. Meni ovo sve spansko selo :))

  2. Pela
    17. децембра 2012. at 21:29

    A da li je to kesiranje preporucljivo ako se redovno iz brauzera brise kes memorija zajedno sa istorijom pregledanja??? da li je moguce da neka web aplikacija koristi duple baze jedna na racunaru korisnika = to bi bila kes memorija a druga na serveru-mysql… radi brzeg otvaranja i postojanja baze i kad server neradi i obratno da se po ukljucenju servera refreshuje i obnovi kes memorija ukoliko je korisnik izbrisao?

  3. Miodrag Stefanović
    26. јануара 2013. at 16:43

    Kes memorija u browseru je na klijentskoj strani i nije vezana za kesiranje na serverskoj strani koje je opisano u ovom blogu. Kesiranje na serveru je uvek preporucljivo zbog ustede resursa i povecanja brzine.
    Sto se tice drugog pitanja – generalno ako server ne radi nece raditi ni web aplikacija koja se “vrti” na njemu, tako da je prakticno jako tesko napraviti funkcionalnu arhitekturu koju si opisao.

Advertisement

Popularno na Kupindu

U potrazi ste za udžbenicima za osnovnu ili srednju školu? Pogledajte na Kupindu:

➡️ Udžbenici za osnovnu školu
➡️ Udžbenici za srednju školu

Ovde ćete pronaći udžbenike za svaki razred i izdanja gotovo svih izdavača koje današnje škole traže. Uštedite na kupovini udžbenika.

  • Najpopularnije
  • Poslednji postovi
  • Za sledećih 15 Vladimir Nikolić 22. маја 2021. Limundo 607
  • Hoću da znam šta je neko kupio i prodao Vladan Jović 16. децембра 2013. LimundoGrad 355
  • Kako da ocenim prodavca (a da to bude ispravno)? Ana Mladenović 12. марта 2013. LimundoGrad 248
  • Veštačko nuđenje – istine i laži Vladan Jović 11. јуна 2013. Limundo 234
  • Cenovnik + opcije + brzina Aleksandra Vuković 15. марта 2012. Blog 211
  • Dani ploča na Kupindu: Vinil ne izlazi iz mode! Dunja Stojković 13. марта 2025. Kupindo
  • Top 10 predmeta sa Limunda i Kupinda u 2024. godini! Dunja Stojković 31. децембра 2024. LimundoGrad
  • Digital Awards 2024: Limundo osvojio nagradu za najbolju radijsku kampanju! Dunja Stojković 30. септембра 2024. LimundoGrad
  • Polovna odeća kao znak stila: 10 vrhunskih modnih brendova koje nećete naći u tržnom centru Ivana Lučić 26. августа 2024. LimundoGrad
  • Uživanje u letnjem danu – detalji koji čine baštu posebnom Dunja Stojković 1. августа 2024. Zabava i učenje

Skorašnji komentari

  • Jovana Milenković Arizanović на Tri najjeftinija načina za slanje paketa u LimundoGradu
  • Marija Protic на Tri najjeftinija načina za slanje paketa u LimundoGradu
  • Jovana Milenković Arizanović на Tri najjeftinija načina za slanje paketa u LimundoGradu
  • janoš на Tri najjeftinija načina za slanje paketa u LimundoGradu
  • janoš на Tri najjeftinija načina za slanje paketa u LimundoGradu

Vremeplov

© 2008. LimundoGrad d.o.o. Creative Commons License Ovo delo je licencirano pod uslovima licence Creative Commons Autorstvo-Nekomercijalno-Bez prerada 4.0 Međunarodna licenca
LimundoGrad koristi kolačiće u statističke i marketinške svrhe. Nastavkom korišćenja sajta smatramo da ste pristali na upotrebu kolačića.OKViše informacija