# Redis Object Cache instellen voor WordPress

Om de laadtijden van zware, dynamische WordPress-websites (zoals webshops) drastisch te verlagen, bieden wij een veilige en razendsnelle **Redis Object Cache** aan. Omdat veiligheid voorop staat, maken wij geen gebruik van standaard netwerkpoorten, maar krijgt elke website een eigen, afgeschermde UNIX-socket.

In deze handleiding leggen we uit wat Redis doet en hoe je dit in drie simpele stappen configureert voor jouw projecten.

## Wat is Redis en waarom heb je het nodig?

Redis is een geavanceerd *in-memory* opslagsysteem. Voor WordPress werkt het als een **Object Cache**. Dit betekent dat het de resultaten van zware database-berekeningen (MySQL) opslaat in het razendsnelle werkgeheugen (RAM) van de server.

- **Waar het voor dient:**
    
    
    - **Snelheid:** Complexe pagina's die niet gecachet kunnen worden door een standaard Page Cache (zoals winkelmandjes, afrekenpagina's of ingelogde gebruikers), laden veel sneller.
    - **Database ontlasten:** Omdat WordPress veelvoorkomende vragen direct aan Redis stelt in plaats van aan de MySQL-database, blijft de server stabieler tijdens piekdrukte.
- **Waar het NIET voor dient:**
    
    
    - Redis is **geen Page Cache**. Het vervangt plugins zoals WP Rocket of W3 Total Cache niet. Ze werken juist perfect samen: de Page Cache bedient de anonieme gasten, Redis bedient de dynamische acties en de database.
    - Het is geen permanente opslag voor mediabestanden of bestellingen; het is een vluchtig geheugen puur bedoeld voor versnelling.

---

## Stap 1: Jouw unieke Plesk-gebruikersnaam vinden

Omdat jouw Redis-instantie privé is afgeschermd, moet WordPress exact weten via welk pad het met Redis mag communiceren. Dit pad is gebaseerd op de systeemgebruikersnaam van het hostingpakket.

1. Log in op **Plesk**.
2. Ga naar het domein en navigeer naar **Hosting &amp; DNS** &gt; **Hosting**.
3. Kijk onder het kopje **System user's credentials**.
4. Kopieer hier de exacte waarde die achter **Username** staat (bijv. `mijndomein_abc123`).

## Stap 2: WordPress configureren (wp-config.php)

Nu we de gebruikersnaam hebben, moeten we WordPress vertellen hoe het verbinding moet maken. Open het `wp-config.php` bestand van de website via bestandsbeheer of SSH en voeg helemaal onderaan de volgende twee regels toe, vlak boven de regel `require_once ABSPATH . 'wp-settings.php';`<button aria-label="Download code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger download-button ng-tns-c3933017335-1257 mat-unthemed ng-star-inserted"></button><button aria-label="Copy code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c3933017335-1257 mat-unthemed ng-star-inserted"></button>

```php
// Activeer veilige verbinding via een UNIX-socket
define( 'WP_REDIS_SCHEME', 'unix' );

// Pad naar jouw prive-socket (vervang 'plesk_username' twee keer door jouw echte gebruikersnaam!)
define( 'WP_REDIS_PATH', '/run/redis-instances/plesk_username/plesk_username.sock' );

```

<div _ngcontent-ng-c3933017335="" class="code-block ng-tns-c3933017335-1257 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" id="bkmrk--2" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_a4ad4549d8cba4a6","c_e96b80c3ef5cd020",null,"rc_089302c831fea1cb",null,null,"nl",null,1,null,null,1,0]]"><div _ngcontent-ng-c3933017335="" class="formatted-code-block-internal-container ng-tns-c3933017335-1257"><div _ngcontent-ng-c3933017335="" class="animated-opacity ng-tns-c3933017335-1257"></div></div></div>> **Belangrijk:** Vergeet niet in de tweede regel `plesk_username` daadwerkelijk te vervangen door de naam die je in stap 1 hebt gekopieerd. Zorg dat het pad klopt, anders kan WordPress de cache niet vinden!

## Stap 3: De plugin installeren en activeren

Om WordPress te laten praten met onze Redis-server, raden wij de officiële **Redis Object Cache** plugin aan.

1. Ga in het WordPress-dashboard naar **Plugins &gt; Nieuwe plugin toevoegen**.
2. Zoek naar **Redis Object Cache** (de plugin met het rode kubus-logo, gemaakt door Till Krüss). [Bekijk de plugin hier](https://wordpress.org/plugins/redis-cache/).
3. Installeer en activeer de plugin.
4. Navigeer in het WordPress-dashboard naar **Instellingen &gt; Redis**.
5. Klik op de knop **Enable Object Cache**.

Als alles goed is gegaan, springt de status na enkele seconden op *Connected*. Is de site vernieuwd of wil je testen of nieuwe producten direct zichtbaar zijn? Dan vind je op deze pagina ook altijd de knop **Flush Cache** om het geheugen handmatig te wissen.

---

## Statistieken begrijpen (Metrics)

Op dezelfde pagina (**Instellingen &gt; Redis**) zie je onder het tabblad 'Metrics' handige grafieken over de prestaties van je cache. Hiermee kun je direct zien of Redis efficiënt zijn werk doet:

<table data-path-to-node="23" id="bkmrk-metric-wat-betekent-" style="width: 100%;"><thead><tr><td style="width: 9.41044%;">**Metric**</td><td style="width: 44.4632%;">**Wat betekent het?**</td><td style="width: 46.1263%;">**Wat is een goede score?**</td></tr></thead><tbody><tr><td style="width: 9.41044%;"><span data-path-to-node="23,1,0,0">**Time**</span></td><td style="width: 44.4632%;"><span data-path-to-node="23,1,1,0">De tijd die het kost om data naar Redis te schrijven of te lezen.</span></td><td style="width: 46.1263%;"><span data-path-to-node="23,1,2,0">Hoe lager, hoe beter. Idealiter slechts een fractie van een milliseconde.</span></td></tr><tr><td style="width: 9.41044%;"><span data-path-to-node="23,2,0,0">**Bytes**</span></td><td style="width: 44.4632%;"><span data-path-to-node="23,2,1,0">Hoeveel RAM-geheugen de huidige cache in beslag neemt.</span></td><td style="width: 46.1263%;"><span data-path-to-node="23,2,2,0">Dit schommelt afhankelijk van de grootte van de website. Blijft het heel laag, dan is de cache nog leeg of wordt er te weinig opgeslagen.</span></td></tr><tr><td style="width: 9.41044%;"><span data-path-to-node="23,3,0,0">**Ratio**</span></td><td style="width: 44.4632%;"><span data-path-to-node="23,3,1,0">De *Hit Ratio*. Dit is het percentage van de vragen dat Redis succesvol en direct kon beantwoorden, zonder dat de MySQL-database moest worden aangesproken.</span></td><td style="width: 46.1263%;"><span data-path-to-node="23,3,2,0">**80% of hoger is uitstekend.** Zakt dit structureel onder de 50%? Dan gooit de cache te snel data weg of bevat de site erg veel niet-cachebare elementen.</span></td></tr><tr><td style="width: 9.41044%;"><span data-path-to-node="23,4,0,0">**Calls**</span></td><td style="width: 44.4632%;"><span data-path-to-node="23,4,1,0">Het totaal aantal aanvragen (commando's) dat WordPress naar Redis heeft gestuurd gedurende de gemeten periode.</span></td><td style="width: 46.1263%;"><span data-path-to-node="23,4,2,0">Afhankelijk van het verkeer. Een hoog getal in combinatie met een hoge Ratio betekent dat de site enorm wordt versneld!</span></td></tr></tbody></table>

---

### Het verschil tussen Page Caching en Object Caching (Redis)

Om een website razendsnel te maken, werken we op twee verschillende niveaus. Je kunt het vergelijken met een modern restaurant:

#### 1. Page Caching (De "Kant-en-klare Maaltijd")

*Plugins: WP Rocket, W3 Total Cache, LiteSpeed Cache.*

Page Caching maakt een statische "foto" (HTML-bestand) van een volledige pagina.

- **Hoe het werkt:** Als de eerste bezoeker komt, moet de server hard werken. De Page Cache slaat het resultaat op. De volgende 1.000 bezoekers krijgen simpelweg dat kant-en-klare bestand voorgeschoteld zonder dat de server hoeft te "koken".
- **De beperking:** Zodra een pagina gepersonaliseerd is (bijv. een unieke winkelwagen, een 'Welkom Jan' tekst, of een dashboard voor ingelogde leden), kan Page Caching niet gebruikt worden. Je kunt immers niet de maaltijd van Jan aan Piet geven.

#### 2. Object Caching met Redis (De "Mise-en-place" van de Chef")

*Systeem: Redis.*

Redis cachet geen hele pagina's, maar de **onderdelen** (objecten) die nodig zijn om een pagina te bouwen.

- **Hoe het werkt:** In plaats van dat de "chef-kok" (PHP) telkens naar de verre "voorraadkast" (de MySQL-database) moet lopen om elk ingrediënt te zoeken, zet Redis alle veelgebruikte ingrediënten alvast gewassen en gesneden klaar op het aanrecht (in het RAM-geheugen).
- **Waarom dit essentieel is:** Op dynamische momenten waarop Page Caching uitstaat—zoals tijdens het afrekenen, het zoeken in een webshop moet de server de pagina live opbouwen. Redis zorgt ervoor dat dit opbouwproces (het ophalen van prijzen, gebruikersrechten, productopties) in milliseconden gebeurt in plaats van seconden.

### Waarom ze perfect samenwerken

Je vervangt de één niet door de ander; ze versterken elkaar:

1. **Page Caching** vangt de bulk van je verkeer op (meestal gasten/bezoekers op de homepage en blogs). Dit bespaart de server enorm veel rekenkracht.
2. **Redis** springt bij op de cruciale momenten waar Page Caching stopt:
    
    
    - **Interactie:** Iemand stelt een filter in op een productenpagina.
    - **Conversie:** Iemand voegt een product toe en gaat naar de checkout.

**Kortom:** Page Caching zorgt voor **schaalbaarheid** (veel bezoekers tegelijk aan kunnen), Redis zorgt voor **snelheid en responsiviteit** op de momenten dat de website voor de bezoeker aan het werk moet.

<table data-path-to-node="20" id="bkmrk-kenmerk-page-cache-%28"><thead><tr><td>**Kenmerk**</td><td>**Page Cache (WP Rocket / W3TC)**</td><td>**Object Cache (Redis)**</td></tr></thead><tbody><tr><td><span data-path-to-node="20,1,0,0">**Wat wordt bewaard?**</span></td><td><span data-path-to-node="20,1,1,0">Volledige HTML-pagina's.</span></td><td><span data-path-to-node="20,1,2,0">Resultaten van database-queries en PHP-berekeningen.</span></td></tr><tr><td><span data-path-to-node="20,2,0,0">**Snelheidswinst?**</span></td><td><span data-path-to-node="20,2,1,0">Extreem (serveert statische bestanden).</span></td><td><span data-path-to-node="20,2,2,0">Zeer hoog (vermijdt trage database-acties).</span></td></tr><tr><td><span data-path-to-node="20,3,0,0">**Ingelogde gebruikers?**</span></td><td><span data-path-to-node="20,3,1,0">Meestal niet (pagina is uniek per user).</span></td><td><span data-path-to-node="20,3,2,0">**Ja, altijd actief.**</span></td></tr><tr><td><span data-path-to-node="20,4,0,0">**Winkelmandje/Checkout?**</span></td><td><span data-path-to-node="20,4,1,0">Nee (moet live gegenereerd worden).</span></td><td><span data-path-to-node="20,4,2,0">**Ja, essentieel voor snelheid hier.**</span></td></tr></tbody></table>