Redis is een open source (BSD-licentie), in-memory datastructuuropslag, die wordt gebruikt als een database, cache en berichtenmakelaar. Het kan worden gecombineerd met andere databases zoals MySQL om een mechanisme te bieden om uw zoekopdrachten in de cache op te slaan.
In dit artikel laten we zien hoe u de MySQL-query's die nodig zijn om WordPress-pagina's weer te geven, in de cache kunt opslaan. Dit zal ons aanzienlijke prestatiewinst opleveren, zij het met enkele kanttekeningen.
Inleiding tot betere WordPress-caching
WordPress gebruikt de MySQL-database om interne applicatie-objecten (broodkruimels, menu-items, enz.) in de cache op te slaan, wat duur kan zijn om te genereren. Aangezien de database ook query's voor paginaverzoeken verwerkt, is dit mogelijk het meest voorkomende knelpunt en veroorzaakt het vaak langere laadtijden.
Redis biedt een caching-mechanisme dat fungeert als alternatief voor de MySQL-database. Als een gebruiker een WordPress-pagina bezoekt, worden de MySQL-query's die nodig zijn om de pagina te genereren, geleverd via Redis, dat de resultaten in de cache opslaat. Dit resulteert in razendsnelle laadtijden, vergelijkbaar met statische pagina's.
Een andere populaire caching-keuze is Memcached. Redis doet echter bijna alles wat Memcached doet, dus we zullen ScaleGrid hosting voor Redis™* gebruiken omwille van deze tutorial.
Hoe werkt Redis-caching?
Als een gebruiker voor de eerste keer een WordPress-pagina aanvraagt, wordt er een MySQL-query uitgevoerd op de server. Redis slaat deze zoekopdracht op in de cache, dus wanneer een andere gebruiker dezelfde WordPress-pagina opvraagt, worden de resultaten geleverd door Redis zonder dat de database opnieuw hoeft te worden doorzocht.
Als de zoekopdracht niet in Redis in de cache is opgeslagen, worden de resultaten geleverd door MySQL, die vervolgens worden toegevoegd aan de Redis-cache.
Als een bepaalde waarde in de database wordt bijgewerkt, wordt de bijbehorende Redis-waarde ongeldig gemaakt om te voorkomen dat slechte cachegegevens aan de gebruiker worden aangeboden.
Vereisten voor zelfstudie
Hier is de lijst met technologieën die in dit artikel worden gebruikt:
- 2 WordPress-installaties (met en zonder de plug-in, voor benchmarks)
- Redis™-server
- Redis WP Object Cache Plugin
WordPress-installatie
Je kunt hier de nieuwste versie van WordPress downloaden en twee verschillende installaties instellen op een host zoals Heroku of AWS.
Redis-server
ScaleGrid biedt ondersteuning van wereldklasse voor Redis™ Standalone en Master/Slave-clusters met verbeterde beveiligingsfuncties. We gebruiken een Standalone Redis™-cluster dat wordt gehost op ScaleGrid met de Allkeys-LRU-cachingstrategie, en u kunt zich aanmelden voor een gratis proefperiode van 30 dagen van onze hosting voor Redis™ om u te helpen bij deze zelfstudie.
Redis WP Object Cache Plugin
Deze plug-in wordt gebruikt als een drop-in voor uw WordPress-installatie en kan worden geconfigureerd om de Redis™-host te gebruiken. Je kunt de plug-in hier vinden.
Installatie-instructies:Redis Object Cache voor WordPress
Hier zijn de stappen om de Redis Object Cache Plugin te installeren op een WordPress-installatie.
Stap 1:installeer de Redis Cache-plug-in
In deze tutorial wordt ervan uitgegaan dat je al twee nieuwe installaties van WordPress hebt ingesteld. Op een van hen moet u de Redis Object Cache-plug-in installeren. Zodra de plug-in is geïnstalleerd, kunt u deze activeren vanuit het plug-insmenu.
Stap 2:Zoek Redis in je instellingen
Zodra de plug-in is geactiveerd, verschijnt een Redis-optie onder het menu Instellingen.
Stap 3:WordPress-configuraties toevoegen
Na het instellen van de plug-in, moeten we configuratie-opties toevoegen aan het WordPress-configuratiebestand. U moet minimaal de volgende opties instellen:
define('WP_REDIS_HOST', ''); define('WP_REDIS_PASSWORD', '');
Je kunt de bovenstaande opties vinden op de ScaleGrid Cluster Details-pagina voor Redis™.
Sla de configuratie op en schakel de Object Cache in. Als de authenticatie correct is, zou u het volgende scherm moeten zien:
Op dit moment is Redis geconfigureerd als cache voor je WordPress-installatie.
Bewaken en debuggen van WordPress-query's
Alle Redis-clusters worden geïnstalleerd met de Redis-opdrachtregelinterface (redis-cli) tool die u kunt gebruiken om de inkomende queryverzoeken van WordPress te controleren. Hier is een screenshot van hoe dit eruit zou kunnen zien:
Als je geen uitvoer op de console ziet, ga dan naar de WordPress-website en ververs.
WordPress &Redis-statistieken om bij te houden
De belangrijkste statistiek om hier bij te houden, is de laadtijd van de pagina. Dit is de standaardconfiguratie die we gebruiken voor de nieuwe installatie:
- WordPress:4.9.5
- Redis:v.4.0.2
- WordPress-thema:Twenty Seventeen
Op basis van een nieuwe installatie op de bovenstaande parameters, kunnen we een vermindering van bijna 50% in de laadtijden van de pagina's zien:
- Zonder de Redis Object Cache =~900ms
- Met de Redis Object Cache =~400ms
Nadelen Redis-objectcache
Er zijn een paar kanttekeningen bij het gebruik van de Redis Object Cache-aanpak op WordPress. Het caching-mechanisme werkt niet goed als je veel plug-ins en thema's hebt geïnstalleerd. Dit komt doordat al hun gegevens ook met Redis in de cache moeten worden opgeslagen.
Je kunt in ons eerdere artikel ook leren hoe je tweets in de cache kunt plaatsen met Node.js, Redis en Socket.io.
Zoals altijd, als je iets geweldigs bouwt, tweet ons erover @scalegridio. Als je hulp nodig hebt bij het beheren of hosten van MongoDB® Database of Redis™, neem dan contact met ons op via [email protected].