Siirry pääsisältöön

Miten välimuistitus toimii?

Opas Seravon monitasoiseen välimuistiarkkitehtuuriin. Lue miten automaattinen välimuisti toimii, kuinka optimoit sivuston suorituskykyä ja kuinka hallitset välimuistia komentoriviltä.

Päivitetty yli 2 viikkoa sitten

Välimuisti tallentaa tietoja tilapäisesti, jotta seuraavat pyynnöt voidaan palvella välittömästi. WordPress-sivustojen kriittisin kerros on HTTP-välimuisti, joka hoitaa sivuston sisällön jakelun.

  • Selaimen välimuisti: Tallennetaan vierailijan laitteelle. Ohita käyttämällä "syvää uudelleenlatausta" (Ctrl+F5 / Shift+Cmd+R).

  • Palvelimen välimuisti: Tallennetaan Seravon palvelimelle. Se uusiutuu automaattisesti, mutta se voidaan tyhjentää manuaalisesti milloin tahansa.

Oletuslogiikka ja arkkitehtuuri

Seravon ympäristö koostuu useista optimoiduista kerroksista: nginx (HTTP), Redis (objektivälimuisti), OPcache (PHP-tavukoodi) ja MariaDB (tietokanta).

Seuraavat oletusarvot tulevat nginx:ltä, ellei niitä ylikirjoiteta sovelluksen Cache-Control-otsakkeilla:

  • Onnistuneet pyynnöt (HTTP 200/206): Välimuistissa 15 minuuttia.

  • Epäaktiiviset resurssit: Jos välimuistissa olevaa tiedostoa ei pyydetä 60 minuuttiin, se poistetaan automaattisesti palvelimen välimuistista resurssien säästämiseksi.

  • Hallinta kehittäjällä: Oletusasetukset voidaan ylikirjoittaa WordPressistä tai nginxistä lähetettävillä otsakkeilla. Näin välimuistiaikoja voidaan pidentää tai välimuistitus voidaan estää kokonaan sivuilla, joiden on oltava aina ajan tasalla.

Parhaat käytännöt kehittäjille

Oikean välimuististrategian valinta on välttämätöntä sekä sivuston nopeuden että palvelimen vakauden kannalta. Suosittelemme seuraavia käytäntöjä:

  • Välimuistita PHP (koko sivu): PHP-prosessointi on vaatii resursseja. Ilman välimuistia liikennepiikit tai pienet DoS-hyökkäykset voivat varata kaikki PHP-prosessit ja kaataa sivuston. Mikään määrä rautaa ei auta, jos välimuistitus on hoidettu huonosti. Minuutin välimuisti on huomattavasti parempi kuin ei mitään. Hyvin dynaamisilla sivuilla voit käyttää fragmentoitua välimuistia sivun tiettyjen osien optimointiin.

  • Lyhyt kesto > Ei välimuistia: Jos tarvitset tuoretta sisältöä usein, käytä lyhyttä välimuistin kestoa (esim. 60 s). Tämä suojaa taustapalvelinta ylikuormitukselta pitäen sisällön silti ajantasaisena.

  • Älä poista OPcachea käytöstä: OPcache poistetaan joskus käytöstä siksi, että se auttaisi uuden sisällön päivittymisessä. OPcache kuitenkin välimuistittaa koodia, ei sisältöä. Sen poistaminen vain heikentää suorituskykyä vaikuttamatta tietojen tuoreuteen.

  • Sisältökohtaiset kestot: Optimaalinen strategia hyödyntää pitkiä aikoja staattisessa sisällössä ja rajoittaa lyhyet välimuistiajat vain dynaamisiin osioihin.

Välimuistin tyhjentäminen ja ohittaminen

Voit joko tyhjentää välimuistin koko sivustolta kaikille käyttäjille tai ohittaa sen vain omassa selaimessasi testausta varten. Kokonaisvaltainen tyhjennys on suositeltavaa suurten sivustopäivitysten jälkeen, kun taas paikallinen ohittaminen on kätevintä kehitystyön aikana, jolloin muiden vierailijoiden käyttökokemus ei häiriinny.

Näin tyhjennät välimuistin (kaikki vierailijat)

  • WordPress: Klikkaa yläpalkin Tyhjennä välimuisti (Purge Cache) -painiketta (tyhjentää nginx- ja Redis-välimuistit).

  • SSH (CLI): Käytä komentoa wp-purge-cache koko sivustolle tai wp cache flush pelkälle Redis-välimuistille.

Näin ohitat välimuistin testauksen aikana

  • Syvä uudelleenlataus: Ctrl+F5 (Win) tai Shift+Cmd+R (Mac).

  • Kehittäjätyökalut: Avaa selaimen kehittäjätyökalut (F12) > Network > ja valitse Disable cache (toimii vain työkalujen ollessa auki).

  • URL-parametrit: Lisää osoitteen perään uniikki merkkijono, esim. esimerkki.fi/?cache=bypass. Se käsitellään uutena pyyntönä ja haetaan tuoreena versiona suoraan PHP:lta.

  • Incognito-tila: Yksityinen selaus varmistaa puhtaan istunnon ilman olemassa olevia evästeitä tai selaimen välimuistitiedostoja.

Vastasiko tämä kysymykseesi?