Cache: definitie en alle toepassingsgebieden van caching

Affiliatemelding v3.1
Affiliatemelding v3.2 (mobiel)

De gebieden waarin caches worden gebruikt, van hardware tot het web, zijn in één boom samengebracht volgens de indelingen van Wikipedia, MDN en de officiële WordPress-documentatie. CPU's, besturingssystemen, databases en browsers gebruiken allemaal dezelfde naam, dus wat er bij het legen van de cache verdwijnt, hangt af van de laag.

Een cache slaat gegevens die vaak worden gebruikt of binnenkort nodig zijn tijdelijk op in een opslag die sneller is dan het origineel, en beantwoordt hetzelfde verzoek met die kopie in plaats van met het origineel.

Het Engelstalige Wikipedia-artikel Cache (computing) verdeelt caches in hardwarecaches, zoals CPU- en GPU-caches, en softwarecaches, zoals schijf-, web-, DNS- en databasecaches. De boom hieronder groepeert die indeling naar de plek waar een cache zit, en webcaches volgen de indeling van MDN in private cache en shared cache.

🗂️ Waar caches worden gebruikt
💻 Ⅰ. Apparaten van gebruikers
Cache van het besturingssysteemSchijfcache · DNS-cache
BrowsercachePrivate cache van de HTTP-cache
Cache van mobiele appsMiniaturen · sessiegegevens
🖥️ Ⅱ. Server en applicatie
PaginacacheKant-en-klare HTML (WP Rocket · FastCGI-cache)
OPcachePHP-bytecode
ObjectcacheRedis · Memcached
Cache van webframeworksLaravel · Django
🌐 Ⅲ. Contentlevering · netwerk
CDNShared cache van de HTTP-cache
ProxycacheForward · reverse (Varnish)
NetwerkcacheARP-cache · cache van DNS-resolvers
🗄️ Ⅳ. Database · opslag
Interne DB-cacheInnoDB-bufferpool · Shared Buffers
OpslagcacheSchijfcontroller · SSD-DRAM
⚙️ Ⅴ. Hardware
CPU-cacheL1 · L2 · L3 · TLB
GPU-cacheTexturen · shadergegevens
☁️ Ⅵ. Cloud · virtualisatie
ContainercacheDocker-lagen
Serverless functiesWarm Start
BuildcacheCI/CD-afhankelijkheden · artefacten

In de simulator van het artikel Websitecache & servercache: zo werkt caching in WordPress zie je in welke volgorde de browsercache, het CDN en de interne servercache één WordPress-verzoek afhandelen.

Ⅰ. Apparaten van gebruikers

  • ↳ Client-Side Cache

Caches op apparaten van gebruikers, zoals pc's en smartphones, kun je indelen in de cache van het besturingssysteem (OS), de browsercache en de cache van mobiele apps.

Cache van het besturingssysteem (OS)Geheugen van het apparaat (RAM)
Wat het opslaatVan schijf gelezen gegevens · domeinen en IP-adressen

De schijfcache (paginacache) houdt van schijf gelezen gegevens in het geheugen vast en wordt beheerd door de kernel van het besturingssysteem. De DNS-cache bewaart onlangs opgevraagde domeinen en IP-adressen.

SchijfcacheDNS-cache
BrowsercacheBrowseropslag
Wat het opslaatHTML · CSS · JS · afbeeldingen · lettertypen

Wordt dezelfde resource opnieuw opgevraagd, dan gaat het verzoek niet naar de server of wordt alleen gecontroleerd of de resource is veranderd. Met een Service Worker (Cache API) kan een webapp ook offline met opgeslagen resources openen.

private cacheService Worker
Cache van mobiele appsOpslagruimte van de app
Wat het opslaatMiniaturen · delen van content · inlogstatus

Apps met veel content slaan gedownloade gegevens en recent bekeken lijsten op het apparaat op, zodat ze dezelfde gegevens niet opnieuw downloaden.

YouTubeInstagram

Ⅱ. Server- en applicatiecache

  • ↳ Server-Side Cache

Een cache aan de serverkant zit in het proces waarin een pagina wordt opgebouwd nadat een verzoek de server heeft bereikt. De officiële WordPress-documentatie deelt dit op in cachingplugins (paginacache), objectcache en servercache (opcodecaches zoals OPcache).

PaginacacheServerschijf · geheugen
Wat het opslaatAfgewerkte HTML-pagina

Bij een verzoek om dezelfde pagina wordt de opgeslagen kopie verstuurd zonder PHP uit te voeren. Er zijn cachingplugins en webservercaches.

WP RocketNginx FastCGI-cacheLiteSpeed Cache
OPcacheServergeheugen
Wat het opslaatGecompileerde PHP-bytecode

Wordt hetzelfde bestand opnieuw uitgevoerd, dan wordt het compileren overgeslagen. Sinds PHP 5.5 is het standaard ingebouwd.

Opcodecache
ObjectcacheServergeheugen
Wat het opslaatQueryresultaten · sessiegegevens

Slaat vaak gebruikte gegevens op in een geheugenopslag, zodat dezelfde query niet steeds opnieuw wordt uitgevoerd.

RedisMemcached
Cache van webframeworksApplicatie
Wat het opslaatTemplates · routes · queryresultaten

Webframeworks slaan gerenderde templates en queryresultaten op in hun eigen cache.

LaravelDjango

Ⅲ. Cache voor contentlevering / netwerkinfrastructuur

Caches in de netwerkinfrastructuur antwoorden tussen de bezoeker en de originele server met een kopie, wat de fysieke afstand en de belasting van de originele server verkleint. In de HTTP-cachingstandaard vallen ze onder de shared cache die door meerdere bezoekers wordt gedeeld.

CDNEdge-servers
Wat het opslaatStatische bestanden · pagina's

Levert de inhoud vanaf de server die het dichtst bij de bezoeker staat, uit servers die over de hele wereld verspreid zijn. De opbouw en de voordelen worden in het artikel Wat is een CDN? Redenen om een CDN te gebruiken en 5 voordelen uitgelegd.

CloudflareAkamaiFastlyQUIC.cloud
ProxycacheProxyserver
Wat het opslaatServerantwoorden

Een forward proxy slaat antwoorden op aan de kant van de client, zoals in een bedrijfsnetwerk, en een reverse proxy doet dat vóór de server.

Varnish CacheNginx reverse proxy
NetwerkcacheNetwerkapparatuur · DNS-resolvers
Wat het opslaatKoppelingen van IP- en MAC-adressen · resultaten van DNS-lookups

Netwerkapparatuur bewaart de koppelingen in de ARP-cache; DNS-resolvers van providers en openbare DNS-resolvers bewaren lookupresultaten zolang de TTL van het record geldt.

ARP-cacheCache van DNS-resolvers

Ⅳ. Cache van databases en opslagsystemen

Omdat schijf-I/O traag is, houden databases en opslagapparaten vaak gelezen gegevens in het geheugen.

Interne databasecacheGeheugen van de DB-server
Wat het opslaatVaak gelezen gegevens · indexen

Houdt vaak gelezen gegevens en indexen in het geheugen. De querycache van MySQL is in 8.0 verwijderd; MariaDB heeft hem nog, maar standaard staat hij uit.

InnoDB-bufferpoolPostgreSQL Shared BuffersMongoDB WiredTiger
OpslagcacheGeheugen in het opslagapparaat
Wat het opslaatRecent gelezen · geschreven gegevens

Het geheugen in de controller van de harde schijf en het DRAM in de SSD slaan gegevens tijdelijk op en verkorten zo de I/O-vertraging.

Cache van de schijfcontrollerSSD · NVMe DRAM

Ⅴ. Cache op hardwareniveau

Hardwarecaches zijn snel geheugen in de CPU en GPU dat gegevens sneller verwerkt dan het werkgeheugen (RAM).

CPU-cacheIn de processor
Wat het opslaatInstructies · gegevens · adresvertalingen

Elke core heeft een eigen L1, verdeeld in een instructiecache en een datacache, terwijl L3 door alle cores wordt gedeeld. De geheugenbeheereenheid (MMU) slaat de resultaten van het vertalen van virtuele naar fysieke adressen op in de TLB.

L1L2L3TLB
GPU-cacheIn de grafische processor
Wat het opslaatTexturen · shaderinstructies · tussenresultaten

Verhoogt de verwerkingsefficiëntie van de GPU bij games, 3D-graphics en machinelearningberekeningen.

Ⅵ. Cache in cloud- en virtualisatieomgevingen

Cloud- en virtualisatieomgevingen hergebruiken containerimages, uitvoeringsomgevingen van functies en buildresultaten om de tijd voor uitrollen en uitvoeren te verkorten.

ContainercacheBuildservers · registries
Wat het opslaatImagelagen

Een Docker-image bestaat uit meerdere lagen, en lagen die niet zijn veranderd, worden niet opnieuw gebouwd of gedownload.

Docker
Serverless functiesCloud-uitvoeringsomgeving
Wat het opslaatUitvoeringsomgeving

Houdt de uitvoeringsomgeving van een afgeronde aanroep een tijd vast en hergebruikt die bij de volgende aanroep, zodat de initialisatietijd (Cold Start) korter wordt (Warm Start).

AWS LambdaGoogle Cloud Functions
BuildcacheCI-cacheopslag
Wat het opslaatAfhankelijkheden · compilatieresultaten

Verkort de tijd van herhaalde builds.

GitHub ActionsGitLab CI

🔢 FAQ & aanbevolen content

Nee. Als je de browsercache wist, verdwijnen alleen de kopieën op het apparaat van de bezoeker. De paginacache op de server en de kopieën op het CDN worden door de sitebeheerder geleegd via de cachingplugin of het beheerscherm van het CDN.

Het eerste verzoek direct na het legen gaat helemaal naar het origineel en wordt dus trager beantwoord dan normaal. Zodra dat verzoek de kopie opnieuw heeft gemaakt, zijn de volgende verzoeken weer even snel als vroeger, en [Preloaden] van WP Rocket maakt de kopieën na het legen alvast aan.

In Windows staan de groottes van de L1-, L2- en L3-cache onderaan het scherm [Prestaties] → [CPU] van Taakbeheer. In Linux zie je dezelfde waarden in de uitvoer van het commando [lscpu].

💾 Berichten over cache 10 berichten
🗂️ Cache
📋 Cache: definitie en alle toepassingen 📄 Websitecache & servercache
📋 WP Rocket instellen 📝 Zend OPcache 📝 Redis Cache installeren
📝 Wat is een CDN? 📝 Varnish Cache
📋 WP Rocket-snelheidstest 📝 Voorbeeld van snelheidswinst 📝 Cache- en optimalisatieplugins

ℹ️ Affiliatemelding
De content van deze site bevat affiliatelinks. Koopt een bezoeker via een van deze links een product of dienst, dan ontvangt deze site een commissie van de verkoper. Het bedrag dat de koper betaalt (bij acties gaat het omlaag ↓) wordt daardoor niet hoger. De vermelde prijzen, kortingen en voorraad gelden op het moment van schrijven en kunnen afwijken; controleer ze daarom vóór je aankoop bij de verkoper. Producten worden gekozen en beoordeeld volgens onze eigen criteria, en commissies hebben geen invloed op de volgorde of de inhoud van de beoordelingen.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Laat zien dat je geen machine bent: 2   +   7   =