Je kunt al een tijdje bij Antagonist Redis gebruiken. Ondertussen draaien dan ook meer dan duizend WordPress-websites en Magento-webwinkels met Redis flink sneller. Dat is natuurlijk een enorm mooi aantal, maar we willen meer! Daarom vertel ik je graag hoe je het instelt en ga ik een stukje de diepte in hoe je het nog vlotter maakt.
Waarom je Redis moet hebben
Redis is een geavanceerde cachingtechniek, waarbij veelgebruikte data en berekeningen van je website in het snelle RAM (werkgeheugen) worden opgeslagen. Dit zorgt voor een flink snellere website, waarbij je pagina’s maar liefst tot tien keer zo vlot kunnen laden. Dankzij onze slimme implementatie is er geen complexe authenticatie of extra configuratiewerk nodig en werkt het veilig binnen de container van je pakket.
Met name zwaardere websites en webshops hebben er enorm baat bij. Zo laden bijvoorbeeld webshops met veel productinformatie en -afbeeldingen vlugger. Zeker als je het combineert met Full Page Caching (FPC) en database caching. Niet alleen je bezoekers ervaren zo meer snelheid, maar je kunt zelf ook veel vlotter in de backend van je website werken.
Bij Antagonist is het kosteloos inbegrepen vanaf het Plus-pakket en hoger. Bij je Plus heb je daarbij 128 MB Redis cache, bij Pro is dat 256 MB en bij de extra krachtige Pro XL-pakketten zelfs 512 MB. Dit zonder dat je een meerprijs hoeft te betalen, zoals je vaak bij andere partijen ziet.
En het Slim-pakket?
Redis vereist meer RAM om succesvol te draaien. Wil je graag Redis, dan kun je via Mijn Antagonist naadloos upgraden naar een krachtiger pakket.
Redis instellen
Antagonist heeft bij Plus en hoger Redis al voor je op de achtergrond draaien. Dat scheelt je een het installeren ervan en de zeer lastige configuratie op het achterliggende systeem. Wel dien je nog zelf binnen je website in te stellen dat je caching plugin of caching-functionaliteit met Redis gaat verbinden. Voor de meest bekende CMS’en hebben wij hier handige stappenplannen voor.
Volg de handleiding voor het CMS dat jij gebruikt en je hebt caching snel aan de praat. Zodra de Redis cache is opgebouwd, zul je zien dat de performance van je website enorm toeneemt.
Bekijk onze hostingpakketten →
Redis maximaal inzetten
Wat velen niet weten, is dat je de performance nog verder kunt verbeteren, nadat je Redis op je website hebt geïmplementeerd. Het heeft alles te maken met hoe je het inzet. Graag geef ik je een voorbeeld om dit te verduidelijken.
Een (geoptimaliseerd) JavaScript (.js) of Cascading Style Sheets-bestand (.css) kun je vaak beter direct van de opslag afhalen en niet vanuit Redis. Deze bestanden veranderen nauwelijks en zijn vaak zeer groot. Zo voorkom je dat je Redis cache met enorme CSS-bestanden volloopt. Caching plugins hebben daarom verdere configuratie-opties, waarmee je bepaalt wat er precies wordt gecachet en voor hoe lang (TTL).
Om met enkele getallen makkelijk inzichtelijk te maken hoe Redis wordt benut, kun je een PHP-script in je website plaatsen en het daarna in je webbrowser bekijken. Roep je dit script in je webbrowser aan, dan krijg je een groot aantal waardevolle getallen terug. De belangrijksten zal ik nu toelichten.
#1. Cache hit ratio
Het cirkeldiagram met het percentage Hits geeft aan hoe efficiënt de cache van Redis wordt gebruikt en of een gegeven daadwerkelijk in de Redis cache kan worden gevonden. Dit wordt vaak ook wel de cache hit ratio genoemd. Het is aanbevolen dit ruim boven de 80% te houden en liefst zelfs boven de 95%.
Mocht een waarde niet uit de Redis cache kunnen worden gehaald, dan treedt er een miss op en dient je website alsnog de gangbare rekenkracht te gebruiken om de pagina trager op te bouwen. Verbeter de cache hit ratio door preciezer te bepalen wat van je website er in Redis wordt gecachet. Daarnaast werkt het verhogen of verlagen van de TTL.
Andere term, zelfde idee
W3 Total Cache voor WordPress duidt TTL aan met ‘Maximum lifetime of cache objects’. Ofwel, hoe lang iets in de Redis cache wordt onthouden.
#2. Evicted/Expired
Expired geeft aan hoeveel gecachte waardes zijn verlopen, omdat tegen de ingestelde TTL in de caching plugin is aangelopen. Zo’n plugin onthoudt gegevens namelijk voor maximaal een aantal seconde om te voorkomen dat Redis irrelevante informatie gaat bijhouden. Zie je dat de hoeveelheid Expired enorm hoog is door cachingdata die verloopt, overweeg dan om de TTL op te hogen. Het onthoudt zo gegevens van je website langer.
Het getal bij Evicted geeft aan hoeveel gecachte waardes uit Redis zijn verdwenen, omdat er niet meer genoeg geheugen vrij is. Dit is meestal een indicatie dat het irrelevante gegevens begint te cachen. Dit los je vaak op door in je caching plugin de TTL voor de Redis cache te verlagen.
#3. Geheugengebruik
Het geheugengebruik is ook iets om in de gaten te houden. Je kunt zowel het huidige geheugengebruik (Used Memory) als het piekgebruik (Peak Memory) van Redis terugzien.
Zie je dat er relatief weinig wordt gecachet en de cache hit ratio ook zeer laag is, dan is het slim om meer nuttige data voor langere tijd in Redis te cachen. Dit doe je mede door de TTL in je website op te hogen. Als je echter ziet dat de cache overloopt (Evicted) en constant vol zit, dan is dit een indicatie dat er te veel irrelevante data in de cache blijft staan. Overweeg dan aan te passen waar je voor jouw website Redis inzet.
Bij een enorme webshop is het ook belangrijk om na te gaan of je resources van je pakket nog aansluiten bij de omvang van je website. Mede daarom raden wij bij webshops minimaal een Pro-pakket aan. Daar heb je voldoende rekenkracht, maar ook geheugen aan Redis cache beschikbaar. Door een krachtig genoeg pakket met voldoende Redis cache te hebben, kun je dus ook voorkomen dat de cache overloopt.
Meten is weten!
Dit is advies wat over het algemeen het beste resultaat geeft. Iedere website is uniek. Het kan daarom zijn dat andere caching-instellingen voor jouw website of webshop een beter resultaat geven. Ik raad aan om over een langere tijd, zoals een aantal dagen of weken, bij te houden welke aanpassingen positieve impact geven.
Redis maakt je website dus flink sneller. Zelfs nog sneller als jij weet hoe je jouw website aanpast om het beter te benutten. Ga dus nu aan de slag en geef je website een boost! Gebruik je deze fijne cachingtechniek al, laat dan gerust een reactie achter met je bevindingen.
P.S. Blijf op de hoogte en volg ons via Facebook, X, Instagram, e-mail en RSS. Heb je vragen, tips of opmerkingen? Laat het achter als reactie. Vond je het artikel nuttig? Deel het dan met anderen!
Resellers kunnen hier dus geen gebruik van maken als ik het goed begrijp?
Klopt, Redis is niet beschikbaar op het Resellerpakket. Het vereist meer RAM om succesvol te draaien. Er zijn wel andere cachingtechnieken die je kunt gebruiken. Bekijk bijvoorbeeld eens dit artikel over caching instellen.
Is dit anno 2022 nog steeds het geval? En zo ja, zijn er misschien plannen om dit in de toekomst toch mogelijk te maken voor resellers?
Hoi Mark, dit is nog steeds van toepassing. Er zijn momenteel geen concrete plannen om dit wel mogelijk te gaan maken. Een gebruiker op een Resellerpakket heeft minder RAM tot zijn beschikking dan bijvoorbeeld Slim – waar Redis ook niet wordt aangeboden. Redis-ondersteuning is er daarom vanaf webhosting Plus en hoger.
Werkt Redis ook in combinatie met WP Rocket?
Momenteel niet. We zien dat gebruikers ervan er bij de ontwikkelaars fanatiek om vragen. Hopelijk implementeren ze het binnenkort!
Een ontwikkelaar heeft reeds een plugin ontwikkeld waarmee je Redis i.c.m. WP Rocket kunt gebruiken. Je kunt het op GitHub vinden: https://github.com/naxvog/wpr-redis/. Hopelijk komt WP Rocket inderdaad snel met een eigen implementatie!
Ik gebruik OctoberCMS, hoe kan ik dit dan instellen?
Je kunt voor dit CMS hun instructies volgen: https://octobercms.com/docs/services/cache
Het gaat om het gedeelte onder het kopje ‘Redis’. De regel met ‘Port’ erin kan eruit. Vervang bij ‘Host’ verder de waarde ‘127.0.0.1’ naar ‘/tmp/redis.sock’.
Mooi artikel. En het is inderdaad razendsnel! Vraagje: Heb 3 domeinen gehost. Voor 1 website is Redis geconfigureerd. Die zit nu al op Used Memory 97.50M en een Peak Memory 128.00M. De maximale Redis cache bedraagt 128MB.
Wat gebeurd er als ik de andere 2 websites ook configureer voor Redis en database 2 en 3 toewijs? Hebben die websites dan ook 128MB tot hun beschikking of wordt de 128MB opgesplitst in 3? Is de 42MB Redis cache per website wel nuttig?
Bedankt voor je feedback, Frank! Fijn om te lezen dat je website met Redis flink sneller is geworden.
De websites op je pakket delen de resources met elkaar, zo ook de Redis-cache. Stel je Redis op het Plus-pakket voor drie websites in, dan kunnen ze de 128 MB onderling gezamenlijk gebruiken.
De Redis-cache wordt dus niet in gelijke delen opgesplitst, afhankelijk van voor hoeveel websites Redis wordt ingesteld. Het kan goed zijn dat de ene 80 MB gebruikt en de andere slechts 5.
Of het nuttig is dat er per website bekeken bijvoorbeeld 42 MB beschikbaar is, valt lastig te zeggen. Dat hangt namelijk van het type website af. Waar bij sommige een paar MB al voldoende is, hebben bijvoorbeeld webshops al snel minimaal 256 MB Redis-cache nodig.
Fijn artikel! Zouden jullie ook een voorbeeldje kunnen geven van een Redis implementatie in plain old PHP dat specifiek bij Antagonist werkt? Iets a la dit (ongetest)?
connect(‘/tmp/redis.sock’);
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
var_dump($redis->info());
$hash = md5($_SERVER[‘QUERY_STRING’]);
if (!$redis->get($hash.’-rows’)) {
$rows = $mysqli->query(“SELECT * FROM `TableName`);
$redis->set($hash.’-rows’, $rows);
$redis->expire($hash.’-rows’, 86400);
}
$rows = $redis->get($hash.’-rows’);
var_dump($rows);
?>
Kan ik Redis gebruiken bij mijn Oscommerce 2.2 webshop?
Webshop: https://www.tachyon-aanbieding.eu/
Hoe integreren?
Dag Karel, we kunnen er op de website van osCommerce geen informatie over vinden. De software lijkt ook al een aantal jaar geen updates meer te hebben gekregen, op de Community Edition na (OSCOM CE Phoenix). Je kunt even rechtstreeks bij de ontwikkelaars van de software informeren of ze Redis-ondersteuning bieden. Zo niet, dan is naar andere webshopsoftware overstappen eventueel het overwegen waard.
In ons child-theme is een custom.js en style.css.
Hoe regel je onderstaand?
Redis Maximaal inzetten:
Een (geoptimaliseerd) JavaScript (.js) of Cascading Style Sheets-bestand (.css) kun je vaak beter direct van de opslag afhalen en niet vanuit Redis. Deze bestanden veranderen nauwelijks en zijn vaak zeer groot. Zo voorkom je dat je Redis cache met enorme CSS-bestanden volloopt.
Redis cache helpt nu al goed.
Bedankt voor je vraag, Peter! Dat is afhankelijk van de caching plugin die je gebruikt. In bijvoorbeeld W3 Total Cache kun je instellen dat je CSS en JavaScript wel of niet wilt cachen met Redis. Het handigst is om de documentatie van je caching plugin te raadplegen of contact op te nemen met de ontwikkelaar daarvan.