Skip to main content
SparkCore
Kennis

Redis object cache in WordPress: wat het doet en hoe je het instelt

Een Redis object cache bewaart databasegegevens van WordPress tussen verzoeken, zodat het beheer, de winkelwagen en ingelogde gebruikers minder op de database wachten. Voor anonieme bezoekers die al een pagina uit de paginacache krijgen, voegt hij weinig toe. Deze gids legt uit wat een object cache doet, wanneer WordPress er zelf een adviseert, hoe je Redis instelt, wat je zonder Redis kunt gebruiken en hoe Spark Speed, de cacheplugin die wij maken, ermee omgaat.
In het kort
  • Een object cache versnelt alles wat door WordPress moet: beheer, winkelwagen, afrekenen, ingelogde gebruikers
  • Naast een paginacache, niet in plaats daarvan
  • De plugin alleen is niet genoeg: je host moet een Redis-server leveren
  • Zonder Redis zijn Memcached, SQLite of bestanden een alternatief

Wat een object cache doet

WordPress bewaart de resultaten van databasevragen tijdens een verzoek in het geheugen. Na dat verzoek is alles weer weg. De documentatie van WordPress zegt het zo: gegevens blijven niet tussen paginaladingen bewaard, tenzij je een persistente cacheplugin installeert. Zo'n plugin plaatst het bestand object-cache.php in wp-content, en vanaf dan bewaart WordPress die gegevens in Redis, Memcached of een andere opslag, zodat het volgende verzoek ze niet opnieuw uit de database hoeft te halen.

Object cache of paginacache: wat versnelt wat

Een paginacache bewaart complete HTML en levert die aan anonieme bezoekers, vaak nog voordat WordPress opstart. Daar heeft een object cache weinig aan toe te voegen. Een object cache helpt juist bij alles wat wel door WordPress moet: het beheer, ingelogde gebruikers, winkelwagen, afrekenen en mijn-account in WooCommerce, zoekresultaten en het opnieuw opbouwen van de paginacache. Ze vullen elkaar aan; de een vervangt de ander niet.

Heb je hem nodig? Wat WordPress zelf adviseert

WordPress heeft in Sitestatus een controle op een persistente object cache. In de broncode van WordPress 7.0.2 adviseert die controle er pas een bij een multisite, of zodra een van deze drempels wordt overschreden. Een kleine brochuresite met een goede paginacache valt daar meestal onder.
  • meer dan 500 automatisch geladen opties, of meer dan 100 kB daarvan
  • meer dan 1.000 berichten, reacties, termen, gebruikers of opties
  • de drempels zijn aan te passen met het filter site_status_persistent_object_cache_thresholds

Redis instellen met de plugin Redis Object Cache

De plugin alleen is niet genoeg: er moet een Redis-server draaien die PHP kan bereiken. Op gedeelde hosting staat die er vaak niet, en dan kun je hem ook niet zelf starten. Vraag je host of Redis beschikbaar is en op welk adres. In ons lab draaide geen Redis-server: de plugin meldde Connection refused en hield de knop Enable Object Cache uitgeschakeld. Dat is een veilige keuze van de plugin.
  1. Vraag je host of Redis beschikbaar is, en op welk adres of socket
  2. Staat Redis niet op 127.0.0.1:6379, zet dan WP_REDIS_HOST en WP_REDIS_PORT (en zo nodig WP_REDIS_PASSWORD) in wp-config.php
  3. Deel je Redis met meer sites, geef elke site dan een eigen WP_REDIS_PREFIX of database: legen kan anders de hele Redis-database raken
  4. Installeer Redis Object Cache, ga naar Instellingen, Redis en klik op Enable Object Cache
  5. Controleer met wp redis status: Status moet Connected tonen
Redis Object Cache-instellingen met de melding Redis is unreachable en een uitgeschakelde knop Enable Object Cache
Redis Object Cache 3.0.0 in ons lab zonder Redis-server: Redis Unreachable, inschakelen kan dan niet.

Alternatieven: Memcached, APCu, SQLite en bestanden

Geen Redis? Dan zijn er andere opslagplekken. Memcached werkt vergelijkbaar en zit bij sommige hosts standaard in het pakket. APCu bewaart in het geheugen van PHP zelf, maar per PHP-proces, waardoor WP-CLI en de webserver elkaars wijzigingen niet altijd zien. SQLite en bestanden hebben geen aparte server nodig en werken dus ook op eenvoudige hosting.
PluginOpslagActieve installatiesWaarderingLaatste updateMinimaal PHP
Redis Object CacheRedis-server nodig; PhpRedis, Predis of Relay500.000+4,5 (179)18 sep 20267.2
Docket CacheBewaart in PHP-bestanden, geen Redis nodig20.000+4,9 (50)15 okt 20267.2.5
SQLite Object CacheBewaart in een SQLite-bestand, geen Redis nodig10.000+5,0 (51)17 aug 20265.6

Cijfers van wordpress.org, opgehaald op 16 oktober 2026. Installaties zijn de afgeronde aantallen die wordpress.org toont.

Zo werkt de object cache in Spark Speed

Spark Speed, de cacheplugin die wij maken, heeft een eigen object cache als schakelaar op het tabblad Cache. Wat je daarvan kunt verwachten, uit de code van versie 0.73.2 en onze handleiding:
  • Spark kiest zelf de opslag die de server biedt, in deze volgorde: Redis, Memcached, SQLite en APCu. Een ingestelde WP_REDIS_HOST wint altijd.
  • Zonder WP_REDIS_HOST probeert Spark 127.0.0.1:6379 en daarna de bekende Redis-socketpaden die op de server bestaan.
  • Staat er al een object-cache.php van een andere plugin, dan schrijft Spark daar niet overheen.
  • Staat Redis op het beleid noeviction, dan waarschuwt Spark: Redis weigert dan nieuwe schrijfacties als het geheugen vol is, in plaats van oude sleutels op te ruimen.
  • Paginacache en object cache hebben elk een eigen knop om te legen; de een leegt de ander niet.
  • Levert je host al een object cache, laat de schakelaar in Spark dan uit.

Redis goed afstellen

Twee instellingen bepalen of Redis als cache goed blijft werken. Met maxmemory geef je Redis een geheugengrens. Met maxmemory-policy bepaal je wat er gebeurt als die grens bereikt is. De documentatie van Redis noemt allkeys-lru een goede standaard voor een cache: de minst recent gebruikte sleutels gaan eruit. Bij noeviction geeft Redis een fout op schrijfacties zodra het vol is. Op gedeelde of beheerde hosting stelt de host dit in; vraag het na als je twijfelt.

Controleren en legen

Of WordPress een persistente object cache gebruikt, zie je in Sitestatus en met WP-CLI. Na een wijziging die rechtstreeks in de database is gedaan, bijvoorbeeld een import of een SQL-query, leeg je de object cache, anders toont WordPress nog de oude waarde.
  • wp cache flush leegt de object cache (werkt met elke object-cacheplugin)
  • wp redis status toont status, client en drop-in van Redis Object Cache
  • wp spark-speed flush-object-cache leegt de object cache van Spark Speed
  • In Redis zelf geven keyspace_hits en keyspace_misses uit INFO stats aan hoe vaak de cache raak is
Zet maar een object cache tegelijk aan. Twee plugins die allebei object-cache.php willen beheren, zitten elkaar in de weg.
Spark Speed combineert paginacache en object cache en kiest zelf de opslag die je server biedt.

Veelgestelde vragen

Vooral de delen die niet uit de paginacache komen: het beheer, de winkelwagen en afrekenen, ingelogde gebruikers en zoekresultaten. Pagina's die al uit de paginacache komen, worden er weinig sneller van.

Beide bewaren objectcachegegevens in het geheugen van een aparte server. Voor WordPress doen ze hetzelfde werk; welke je kiest, hangt vooral af van wat je host aanbiedt.

Alleen als je host Redis aanbiedt. Je kunt op gedeelde hosting meestal niet zelf een Redis-server starten. Zonder Redis kun je een object cache op SQLite of in bestanden gebruiken.

Met wp cache flush via WP-CLI, of met de knop van je object-cacheplugin. Doe dit na wijzigingen die rechtstreeks in de database zijn gedaan.