Wikipedia omschrijft caching als een opslagplaats waarin gegevens tijdelijk worden opgeslagen om toegang tot deze data sneller te maken. Afgezien van de korte toegangstijd is het voor de gebruiker niet zichtbaar of de data uit de cache wordt opgehaald. Caching helpt dus om je website sneller te maken voor de bezoekers. Maar caching is moeilijk. Hoe cachen wij?
Hoe bepaal je welke data wel en niet in de cache mag worden opgeslagen? Voor hoe lang mag de data in de cache worden opgeslagen? Hoe ga je om met unieke informatie voor gebruikers die op je website ingelogd zijn? Allemaal vragen die je moet beantwoorden wanneer je met caching aan de slag gaat. Maar het kan ook makkelijker. De opcache helpt daarbij.
Websites worden steeds gecompliceerder. Een blog lijkt simpel, maar op de achtergrond wordt er allerlei code uitgevoerd om je blog artikel of nieuwsbericht te tonen aan je bezoekers. Deze code is vaak geschreven in PHP en onder andere WordPress maakt hier gebruik van. Wanneer je een website opvraagt moet de PHP code worden omgezet in een aantal instructies voor de server. Je kunt het vergelijken met het vertalen van een vraag vanuit het Nederlands naar het Engels waarbij de server alleen Engels spreekt. Als je dat vaak moet doen kost dat veel tijd en wanneer je meer opties aan je website toevoegt moet er ook steeds vaker een vertaling plaats vinden. Iedere keer dat je een vraag stelt aan de server komt de processor en het geheugen in actie. Het moet namelijk eerst de vraag vertalen en daarna het antwoord geven en beide kost rekenkracht.
Je kunt caching op verschillende niveau’s inzetten. Je kunt je website het snelste maken door het antwoord op de vraag tijdelijk op te slaan, maar daarvoor moet je allerlei beslissingen maken en dat maakt caching van het antwoord moeilijk. In plaats van het antwoord kunnen we ook de vraag tijdelijk opslaan. De vraag verandert namelijk niet zo vaak. Wanneer bezoekers je blog bekijken en artikelen op vragen verandert vaak alleen het nummer van het artikel in de vraag. ‘Laat mij artikel 1 zien’ komt aardig overeen met ‘laat mij artikel 2 zien’. Het artikelnummer wat opgevraagd wordt noemen we in dit geval een variabele en je kunt deze aanpassen zonder dat je de vraag verandert. Op de achtergrond worden er nog veel meer vragen gesteld. Mag ik het artikel bekijken? Waar vind ik de inhoud van het artikel? Wie heeft het geschreven? Al deze vragen samen zorgen er voor dat je uiteindelijk het artikel kunt lezen.
De vertaling van deze vragen slaan we op in de opcache. Iedere keer dat een bezoeker dezelfde vraag stelt kunnen we de vertaling uit de cache halen en direct doorsturen naar het systeem. Dat scheelt rekenkracht en zorgt er voor dat je website sneller laadt.
De vraag kan veranderen als je een nieuwe website upload of wanneer WordPress een update uit voert. Om er voor te zorgen dat we geen oude vragen blijven stellen controleert de opcache iedere 60 seconden of de website aangepast is en of de vraag die de opcache heeft opgeslagen nog wel klopt. Als er een wijziging heeft plaats gevonden wordt de nieuwe vraag vertaalt voor de server en slaat de opcache deze op voor de volgende bezoeker.
Al onze webhosting pakketten kunnen gebruik maken van de opcache. Als de website is gemaakt in PHP wordt de opcache automatisch gestart. Je hoeft hier niets voor te doen. De server zorgt er verder voor dat uw website sneller laadt.