Caching

Wil je de prestaties van een drukbezochte server optimaliseren? Dan maakt een correct ingestelde cache een groot verschil. Waarom juist? Omdat een goede caching heel wat rekenwerk uitspaart. Want als de data niet verandert, is de herhaling van complexe – lees: tijdrovende – berekeningen of query’s onnodig. 

Caching gebeurt op uiteenlopende niveaus en lagen. Het is daarom vaak het meest complexe onderdeel van een applicatie. Caching gaat vaak om een combinatie van verschillende oplossingen. 

Met de juiste cachingstrategie kan je applicatie een krachtige boost krijgen. Je moet dan wel de goede strategie vinden en implementeren. Nucleus kent zijn weg tussen de valkuilen.

 

Belangrijke vragen

Wil je met caching aan de slag? Bij Nucleus helpen we graag om volgende vragen te beantwoorden:

  • Is de cache voor iedereen gelijk?
  • Wanneer moet een cache buiten werking gesteld worden?
  • Hoe lang mag bepaalde content in de cache zitten?
  • Wat gebeurt er met ingelogde gebruikers?

Oplossingen

Bij het zoeken naar de geschikte cachingstrategie voor jouw onderneming kijken we naar de balans tussen complexiteit en performantie. Verschillende oplossingen leggen het zwaartepunt immers op verschillende plaatsen.

Query Cache

Bijna alle databases hebben een Query Cache, een intern cachesysteem. Met een Relational Database Management System (RDMS) kan de cache zonder veel bijkomende moeite een SELECT-query opnemen. Dat betekent dat een latere identieke vraag een sneller resultaat krijgt.

Als ontwikkelaar moet je geen rekening houden met cache invalidatie. Dat handelt de database engine voor je af. Als de data wijzigen zal de query opnieuw uitgevoerd worden. Deze cache is de eenvoudigste om te activeren. Het is een kwestie van instellingen in de database engine aan te passen. In de code hoeft er niets te veranderen.

 

Key/Value Cache

Een Key/Value Cache is vaak de eerste aanvulling op een drukke databaseserver. Met een Query Cache krijg je een belasting op je databaseserver, terwijl een aparte Key/Value Cache meer vrijheid biedt. Zo kan je zelf bepalen wat er gecachet mag worden en wat niet. 

Vroeger werd hier vaak een beroep gedaan op Memcached. Vandaag gebruiken we zijn moderne broertje: Redis. Die laat toe om persistente cache bij te houden. Je kan die periodiek ook naar de disk wegschrijven. Als een server opnieuw moet starten, dan heb je nog een cached versie van de data en vermijd je cache stampedes: hordes verzoeken die plots door de cache razen en de databaselaag overbelasten.

 

Full Page Cache

Full Page Caching plaatst een hele pagina in de cache en toont die dan aan een volgende bezoeker. Dat is ideaal voor websites waar vooral anonieme bezoekers komen, zoals nieuwssites of populaire blogs. Zolang gebruikers niet inloggen, krijgen ze identieke pagina’s te zien. En moeten er dus geen meerdere query’s of Key/Value Caches aangesproken worden.  

Varnish is hier de standaard. We hebben massa’s ervaring met deze tool en stellen ook onze Varnish templates ter beschikking.  We zitten ook altijd samen met de ontwikkelaars en de systeembeheerders om alle scenario’s te overlopen en op basis daarvan de juiste Varnish-strategie te implementeren.

 

Edge Side Includes

Edge Side Includes (ESI) is een goede aanvulling op Full Page Caching. Het is geschikt wanneer bijna alle pagina’s identiek zijn, behalve enkele cruciale blokken of elementen. Denk aan  een persoonlijke begroeting of een poll.

Met ESI kan je een volledige pagina in cache houden, en tegelijkertijd enkele vooraf gedefinieerde blokken apart inladen. ESI’s kunnen ook binnen Varnish opgevangen worden, maar vragen een nog diepere integratie met de applicatie. Het is dé meest flexibele manier om je servers zo optimaal mogelijk te laten lopen.  

Onze sterktes

  • Oplossingen van topkwaliteit
  • Waardevol advies op maat
  • Spijkerharde en transparante garanties
  • ISO 27001-gecertificeerde databeveiliging
  • Jarenlange ervaring in hosting
  • Alle servers gehost in België
  • Onafhankelijk, financieel gezond en groeiend bedrijf
  • Transparante, eerlijke en proactieve communicatie