Wat is caching?
Vrij vertaald is cache een opslagplaats. Bij websites wordt cache gebruikt om handelingen die veel tijd kosten, niet telkens te herhalen. De eerste keer dat een handeling (b.v. een menu opbouwen) gevraagd wordt, wordt het resultaat van de handeling deze in de cache geplaatst. De volgende keren wordt die handeling niet meer gedaan, maar wordt het resultaat van de handeling uit de cache rechtstreeks aan de bezoeker geserveerd.
Hoe en wat kunnen we cachen?
Op verschillende plaatsen:
- query cache
- key/value cache
- reverse proxy
Query cache (database)
In alle databases zit query cache ingebouwd. Dit zorgt ervoor dat de resultaten van een SQL-query die vaak voorkomt uit het geheugen geserveerd kan worden. Hiervoor is het belangrijk regelmatig je database-server te tunen. Ook kan het helpen om je query’s zodanig te schrijven dat er maximaal gecached kan worden door de database-server.
Query cache is echter geen wondermiddel, de database-server heeft moeite om te weten welke query’s goede kandidaten zijn om te cachen en hoe lang deze in de cache mogen blijven.
Key/value cache (PHP)
We kunnen ook proberen te voorkomen dat de database aangesproken moet worden. Met een key/value cache zoals Memcache of Redis, kan de programmeur zelf beslissen welke objecten gecached kunnen worden en hoelang.
Neem bijvoorbeeld een website met een grote navigatiestructuur. Deze wordt meestal in een boomstructuur in de database opgeslagen. Dit betekent dat er meestal meerdere SQL-query’s nodig zijn om de volledige structuur op te halen. Ook al worden die wel geserveerd uit de query cache, het blijven meerdere database-benaderingen.
Via de key/value cache kan het resultaat van die verschillende SQL-queries in het RAM-geheugen van de server worden opgeslagen, en dit voor verschillende uren, of zelfs totdat er een wijziging aan de structuur van de site wordt gemaakt!
Full page caching
Dit type caching gaat nog verder. In plaats van stukken van de site in het geheugen te steken, wordt de volledige HTML-code opgeslagen in het geheugen. Immers, dezelfde site wordt heel vaak geserveerd aan honderden of duizenden gebruikers.
Er zijn verschillende manieren om aan full page caching te doen. In Drupal is deze mogelijkheid ingebouwd. Wordpress heeft plugins die dit voor jou kunnen doen.
Een nog betere manier is om de bezoekers op te vangen voor ze aan je webserver geraken. Dit kan door een reverse proxy, waarvan Varnish met voorsprong de meest bekende is. In dit artikel leggen we uit wat Varnish is, waarom het voor jou van belang is en waar je zeker op moet letten.
Hoe werkt Varnish?
Dit is een voorstelling van hoe een standaard website nu in elkaar zit.









