Redis is nu bij ons beschikbaar! Deze geavanceerde cachingtechniek slaat veelgebruikte data in het snelle RAM op. Je website wordt hierdoor vliegensvlug. We zijn flink bezig geweest om deze mooie feature aan ons platform toe te voegen. Nu is het zover! Wat is Redis precies, wat is het voordeel van onze implementatie en hoe ga jij er mee aan de slag?
Wat doet Redis?
Met Redis sla je tijdelijke gegevens in een cache op die je razendsnel weer kunt uitlezen. Zeker zwaardere websites, zoals webshops met veel informatie en afbeeldingen, hebben hier enorm baat bij. Je gebruikt dit dus voor data die niet voor langere periode hoeft te worden bewaard. Het is ontwikkeld als opensourcesoftware en daardoor vrij te gebruiken.
Redis, hoe spreek ik dat uit?
Redis is door een Italiaan gemaakt. Heb je Italiaans onder de knie, dan is het dus simpel. Voor de rest van ons: reddis. Maar ach, zoals de ontwikkelaar van Redis zelf weleens heeft gezegd: “Ik heb liever dat je Redis gebruikt, dan dat je het goed weet uit te spreken.”
Onze implementatie
Zoals je van Antagonist gewend bent, hebben we het activeren van Redis zo gemakkelijk mogelijk gemaakt. Zo hoef je bij ons niet met inloggegevens te authenticeren en lastige IP-adressen of poorten te onthouden. Vanaf het Plus-pakket heb je een eigen Redis-server beschikbaar op een Unix-socket. Het pad daar naartoe, is eigenlijk het enige wat je moet weten: /tmp/redis.sock
Je hoeft dus verder niets in te schakelen of een poort in te stellen. Dat laatste is namelijk niet relevant voor een Unix-socket. Gewoon verbinden en klaar. Je gebruikt dan standaard database 0. Echter, je kunt ook voor database 1 t/m 15 kiezen. Dat is nuttig als je binnen je pakket Redis voor meerdere verschillende websites gebruikt. Het is dan beter om ook verschillende databases te kiezen.
Als je voor de allereerste keer met de Redis-server verbindt, dan wordt er op de achtergrond een database voor je gestart. Hierdoor kan het eenmaal tientallen milliseconden langer duren, voordat je antwoord krijgt. Alle aanvragen die daarna binnenkomen, zullen met de hoogste snelheid worden teruggegeven. De Redis-server staat dan namelijk al klaar.
Geperfectioneerd, dankzij jullie
Van een aantal klanten wisten we dat ze in Redis interesse hadden. Deze groep hebben we daarom gevraagd om te helpen testen. Dankzij waardevolle feedback konden wij onze implementatie perfectioneren. Iedereen die heeft geholpen nogmaals ontzettend bedankt!
Waarom bij ons juist geen wachtwoorden…
Dat onze implementatie geen wachtwoord vereist, maakt het flink veiliger. Dat klinkt misschien wat tegenstrijdig. Beveilig je bijvoorbeeld accounts immers doorgaans niet met een wachtwoord? Daarom leg ik graag uit hoe dat zit.
Redis is gebouwd met één doel voor ogen: snelheid. Om dit te bereiken, heeft de ontwikkelaar ervan een aantal keuzes gemaakt in het ontwerp. Die keuzes zorgen dat het niet verstandig is om Redis in een gedeelde omgeving open te zetten. Een wachtwoord alleen biedt dan te weinig authenticatie.
Ter verduidelijking, je kunt bij Redis een wachtwoord instellen. Een inlogpoging wordt dan door Redis zo snel mogelijk afgehandeld. Alleen, juist doordat dit zo snel gaat, wordt met brute force een wachtwoord achterhalen ook stukken makkelijker. Daarnaast wordt het wachtwoord zonder encryptie verzonden.
Wij hebben er om deze redenen voor gekozen Redis niet via het netwerk beschikbaar te maken, maar alleen binnen de afgeschermde cage van een pakket. Hiermee heeft iedereen dus zijn eigen Redis-server en is een wachtwoord overbodig. Onze oplossing is daardoor een stuk veiliger.
Magento 2 als voorbeeld
Laten we als voorbeeld naar Magento 2-webshop kijken. Waarom Magento, vraag je je misschien af. Nou, Magento is een complexe webapplicatie. Om je webshop snel te houden, is het gebruik van meerdere caches daarom zeer aan te bevelen. Welke caches kun je gebruiken?
PHP OPcache en session cache
Als eerste heb je PHP OPcache. Dit staat los van Redis en raden we altijd aan om te gebruiken. Deze PHP-module staat daarom bij ons al standaard aan in de PHP-selector. Daarnaast is er de session cache van PHP. Gebruik je hier Redis voor, dan kan het je een kleine snelheidswinst opleveren. Sessie-informatie van je bezoekers wordt daardoor niet meer als bestanden opgeslagen, maar in het geheugen van de Redis-server. Zetten we ook aan dus! Dit kan met het volgende commando:
bin/magento setup:config:set \
--session-save=redis \
--session-save-redis-server=/tmp/redis.sock \
--session-save-redis-db=2
Magento Full Page Cache (FPC)
Daarnaast heb je de zogenaamde Full Page Cache (FPC). Bekijk je bijvoorbeeld de hoofdpagina van je webshop, dan moet er van alles gebeuren. Zo zal er een query worden gedaan om populaire producten op te halen, waarvan ook nog eens verschillende productinformatie wordt opgehaald. Daarnaast worden door PHP verschillende templates geladen, ingevuld en gecombineerd.
Best veel werk allemaal! En als de volgende bezoeker komt, dan moet dit allemaal opnieuw. Om vervolgens exact hetzelfde resultaat te tonen. Met FPC sla je het resultaat op, zodat je bij een volgend verzoek deze direct uit je cache kunt halen en alle moeilijke stappen achterwege laat. Redis is hier uitermate voor geschikt. Dit stel je met het volgende commando in:
bin/magento setup:config:set \
--page-cache=redis \
--page-cache-redis-server=/tmp/redis.sock \
--page-cache-redis-db=1
Magento Default Cache
De Magento Default Cache is voor alle overige zaken, waar bijvoorbeeld ook plugins van gebruik kunnen maken. Het is daarom een goed idee om deze cache ook in Redis te zetten. Dit doe je met het volgende commando:
bin/magento setup:config:set \
--cache-backend=redis \
--cache-backend-redis-server=/tmp/redis.sock \
--cache-backend-redis-db=0
En WordPress of Joomla?
Naast Magento 2, kun je Redis natuurlijk ook bij andere CMS’en of een eigengebouwde website gebruiken. Gebruik je bijvoorbeeld WordPress, dan kan het een flinke snelheidswinst opleveren. Zeker als je het in combinatie met WooCommerce gebruikt. Bekijk voor WordPress deze handleiding. Gebruik je Joomla, dan kun je deze instructies raadplegen.
UPDATE – Beveiligingssoftware Patchman uitgebreid
Binnenkort gaan wij proactief kwetsbaarheden in Magento, Prestashop en WooCommerce repareren. Zo blijft je webshop optimaal beveiligd!
Tot slot
Redis is een waardevolle aanvulling en nu beschikbaar vanaf Plus! Zowel voor nieuwe als bestaande pakketten. Heb je een Slim-pakket en wil je ook graag Redis gebruiken, dan kun je via Mijn Antagonist eenvoudig upgraden. Ga dus nu aan de slag en geef je website een boost!
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!
Is er ook ergens een handleiding voor Opencart 3 te vinden?
Beste Andre, de Redis-documentatie van Opencart lijkt wat te wensen over te houden. We kunnen er wel enkele gratis en betaalde Redis-extensies voor vinden. Je zou eens naar de volgende bronnen kunnen kijken:
– https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=36992
– https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=37276
– https://webkul.com/blog/using-redis-cache-opencart/