Redis is een schemaloze, in-memory key-value data store voor real-time applicaties. Developers kunnen het gebruiken als een NoSQL database, een secundaire datalaag of een cachelaag voor rekenintensieve processen.

Redis biedt persistente opslag die websessiestatussen en andere gegevens kan cachen. Applicaties die Redis gebruiken als cachelaag maken meestal één complexe databasequery of API call en cachen dan de resultaten. Het kan hierdoor objecten snel en efficiënt opslaan en ophalen. Daarom is Redis een uitstekende combinatie met WordPress, dat een meer traditionele relationele databaseserver gebruikt als primaire inhoudsopslag.

De Redis command-line interface (CLI) kan worden gebruikt om te communiceren met de Redis server van je WordPress site. Met behulp van de Redis CLI (op de opdrachtregel kan deze worden aangeroepen als redis-cli) kun je programmatisch verzoeken en antwoorden ontvangen van de Redis server, de commando’s controleren die in een Redis instantie worden uitgevoerd, de latentie van een instantie controleren en de status van de server in real-time observeren.

Deze tutorial laat zien hoe je Redis en je WordPress site kunt integreren en de Redis CLI kunt gebruiken om create, read, update en delete (CRUD) bewerkingen uit te voeren vanaf je terminal.

Redis met WordPress verbinden met DevKinsta

Om een WordPress site te verbinden met een Redis database gebruiken we DevKinsta, een gratis toolkit waarmee je met één klik snel WordPress sites kunt opstarten, ontwikkelen en deployen vanuit je lokale omgeving.

DevKinsta start lokaal een Dockerized WordPress site met de laatste versies van de dependencies, waaronder een Nginx webserver, PHP en een MySQL-compatibele MariaDB database. Het bevat tevens CLI ondersteuning voor WordPress.

DevKinsta is beschikbaar voor Windows, Linux en macOS. Je vindt meer informatie over de installatie als je DevKinsta downloadt.

Nadat de installatie is voltooid, maak en installeer je een nieuwe WordPress site lokaal op je apparaat met behulp van de standaard hostingstack.

DevKinsta biedt drie opties voor het lokaal maken van WordPress sites: een gloednieuwe site met standaardinstellingen, een nieuwe site met aangepaste instellingen en het klonen van een bestaande site gehost op Kinsta naar je lokale ontwikkelomgeving.

Deze tutorial gebruikt de eerste optie met de standaardinstellingen en de nieuwste versies van Nginx, PHP, MariaDB en WordPress.

Als je deze stappen hebt gevolgd, kun je het dashboard van je nieuwe site bekijken in DevKinsta:

Screenshot van het DevKinsta dashboard en de details van een nieuwe WordPress site.
Het DevKinsta dashboard na het maken van een nieuwe WordPress site.

Let op het Site Path. Dit is de map met de bestanden en mappen voor de lokale site. De link naar het WP Admin dashboard verschijnt in de rechterbovenhoek. Let tenslotte op de Site Host, dit is de URL die verwijst naar je nieuwe ontwikkelsite.

Je kunt Docker Desktop openen om een lijst te maken van alle containers die als dependencies in je DevKinsta project draaien. Klik hiervoor op Containers bovenaan in de linker zijbalk:

Docker Desktop's lijst van DevKinsta containers.
Docker Desktop’s lijst van DevKinsta containers.

Nu je WordPress site en containerdependencies draaien, ben je klaar om een Redis database met je site te verbinden:

  1. Klik op de knop WP Admin in DevKinsta om naar je WordPress admin dashboard te gaan.
  2. Klik op het tabblad Plugins aan de linkerkant.
  3. Klik op Add New en zoek naar “Redis Object Cache”
Screenshot: Zoeken naar Redis Object Cache tijdens het toevoegen van plugins binnen WordPress.
Zoeken naar de Redis Object Cache plugin binnen WordPress.

Klik op Install Now naast de plugin. Controleer vervolgens of de plugin actief is door op het tabblad Installed Plugins te klikken.

Screenshot: Een lijst met geïnstalleerde WordPress plugins, met Redis Object Cache gemarkeerd.
Geïnstalleerde WordPress plugins, inclusief Redis Object Cache.

Wanneer de Redis Object Cache plugin voor het eerst wordt geactiveerd, zal deze melden dat hij geen verbinding kan maken met een Redis database. We lossen dat op door een container te maken met een Redis instantie binnen Docker.

Laten we een terminal openen en een netwerkcontainer genaamd redisnet maken om je Redis image in te draaien:

docker network create -d bridge redisnet

Bouw en draai nu een Redis image als zelfstandige container in die netwerkcontainer:

docker run -d -p 6379:6379 --name demo_redis --network redisnet redis

Controleer na het starten van de container-image in Docker Desktop dat de Redis image draait:

Screenshot: Indicator dat demo_redis image draait in Docker Desktop.
Docker Desktop draait de demo_redis image.

Onthoud dat je WordPress site automatisch gestart is in een Docker container. Je kunt de naam en ID van het containernetwerk bevestigen:

docker network ls
Screenshot: Uitvoer van het Docker commando Netwerklijst.
Netwerknamen en ID’s in Docker Desktop.

Hierboven is de afgekorte versie van de netwerk ID voor devkinsta_network d1fa155f7a4d. Die gaan we later gebruiken.

Een manier om je Redis cluster en server te verbinden met je lokale WordPress site is door de Redis en DevKinsta netwerken direct met elkaar te verbinden. Controleer eerst de container ID voor Redis. Hier, met het Docker commando om containers op te sommen (te listen), gebruiken we de -l (latest) switch om alleen de container te tonen die het meest recent is aangemaakt:

docker ps -l
Screenshot: De uitvoer van het Docker commando om informatie over containers te tonen.
Containerinformatie gegenereerd door het ps commando van Docker.

In dit voorbeeld verschijnt de afgekorte container-ID als c3ffc630e44c.

Verbind je Redis container met het DevKinsta-netwerk en gebruik je container-ID in plaats van de onze in het onderstaande commando.

docker network connect devkinsta_network c3ffc630e44c

Het Redis container image zou nu toegevoegd moeten zijn aan de lijst van draaiende containers binnen devkinsta_network. Om het netwerk IP adres van de Redis container te verifiëren, voer je de volgende opdracht uit, waarbij je onze devkinsta_network ID vervangt door degene die je hebt gevonden met de opdracht network ls in je project:

docker inspect d1fa155f7a4d
Screenshot: Uitvoer van het docker inspect commando.
Terminal toont een deel van de uitvoer van het docker inspect commando.

In de afbeelding hierboven is het IP adres van de demo_redis container 172.172.0.6. Noteer het IP adres in je project voordat je verder gaat met de verbinding.

Navigeer naar de root van de WordPress site op je lokale machine, die zich bevindt op het Site Path dat wordt weergegeven in DevKinsta. Open het bestand wp-config.php in een teksteditor en voeg de volgende code toe in de sectie voor aangepaste configuratievariabelen:

define('WP_REDIS_CLIENT', 'predis');
define('WP_REDIS_HOST', '172.172.0.6');
define('WP_REDIS_PORT', '6379');

Het IP adres dat je gebruikt voor WP_REDIS_HOST is het adres dat je zag voor demo_redis toen je het commando docker inspect uitvoerde.

Deze configuratiecode voegt de Redis client, host en poort toe zodat de plugin toegang heeft tot de Redis server in dezelfde Docker container en hetzelfde netwerk als DevKinsta.

Om te bevestigen dat de plugin is verbonden en draait:

  1. Navigeer naar je WordPress pluginspagina in het admin dashboard.
  2. Klik op de Settings link voor de Redis Object Cache.
  3. Klik op de Instellingen pagina op de knop Enable Object Cache.
Screenshot: De Redis Object Cache inschakelen in WordPress.
Redis Object Cache is beschrijfbaar en bereikbaar, maar moet worden ingeschakeld.

Zodra de Redis Object Cache is ingeschakeld, ziet de instellingenpagina er ongeveer zo uit:

Screenshot: De Redis Object Cache Settings pagina met de plugin ingeschakeld.
De Redis Object Cache Settings pagina laat zien dat Redis is verbonden en draait.

De Redis CLI starten

De Redis CLI tool (redis-cli) wordt geleverd met een Redis server. Je kunt een Redis server installeren op Windows, macOS en Linux besturingssystemen.

We draaien Redis hier echter al in Docker, dus we kunnen de CLI tool starten binnen onze demo_redis container.

Toen we hierboven het commando docker ps gebruikten, leerden we de ID van de container waarop het Redis image draait. Die van ons begon met c3ffc630e44c. We kunnen deze afgekorte ID gebruiken om demo_redis te targeten en er een commandoregel in te starten:

docker exec -it c3ffc630e44c /bin/sh

Nu kun je het hulpprogramma redis-cli callen:

Screenshot: redis-cli aangeroepen in Docker.
redis-cli callen vanuit een shell in Docker.

Je kunt de server pingen om de verbinding te testen:

ping
Screenshot: de Redis-server pingen met redis-cli.
Reactie van de server op een ping in redis-cli.

Om verbinding te maken met de Redis server via zijn IP adres en poort en die verbinding te testen, voer je het volgende commando uit (met het IP adres van je demo_redis container):

redis-cli -h 172.172.0.6 -p 6379 ping
Screenshot: De Redis-server pingen via een IP adres.
Een ping sturen naar de Redis server via zijn IP adres en poort.

Je hebt met succes verbinding gemaakt met de Redis server op zowel je lokale machine als de Docker container.

Controleer vervolgens of je WordPress site gegevens opslaat in de Redis cache door redis-cli en het keys * commando te gebruiken om alle sleutels in de database weer te geven:

Screenshot: Een lijst van de sleutels op de Redis server.
Alle sleutels ophalen in de Redis database met een * wildcard zoekopdracht.

Je kunt zien dat sommige WordPress gegevens al zijn opgeslagen in de Redis cache.

Redis CLI CRUD bewerkingen

Je kunt CRUD operaties uitvoeren op je Redis database met de CLI tool.

Laten we de waarde opvragen van een sleutel die we hebben gekopieerd van ons eerdere Redis CLI keys * verzoek.

get :u.:~8r]mC->Re/gG!&mGU.[{+;]t7o<H~)c*pcU=Lx_Vs{9JkdxkL:X;M-@Y$Svwp:user_meta:1
Screenshot: Results of a Redis database query.
Redis antwoord op een “get” verzoek met redis-cli.

Laten we de inhoud van de Redis database manipuleren door redis-cli te callen en de commando’s set, get en del te gebruiken om een sleutel/waardepaar te maken, de nieuwe sleutel op te vragen en deze vervolgens te verwijderen:

Screenshot: Redis sleutel/waarde gegevens creëren, opvragen en verwijderen.
Eenvoudige CRUD bewerkingen op een Redis database met redis-cli.

Hierboven levert het opvragen van de waarde van een sleutel die is verwijderd nil op.

Er zijn overigens nog veel meer geavanceerde bewerkingen beschikbaar als je de Redis CLI gebruikt.

Samenvatting

Redis CLI is een gemakkelijke manier om Redis commando’s te testen op je website voordat je het naar een live omgeving pusht. Het is tevens een geweldige manier om activiteit in een Redis instantie te monitoren.

In Docker biedt een Redis instantie de tools die je nodig hebt om de database te beheren – inclusief redis-cli – gebundeld in een enkele container.

Ondertussen maakt de Docker aanpak van DevKinsta het eenvoudig om een WordPress site te ontwikkelen op een lokale machine en deze vervolgens met een paar muisklikken uit te rollen naar productie.

Als je nog niet bezig bent met het beheren van een aantal van de 118,000 WordPress sites die worden gehost door Kinsta, ontdek dan de geavanceerde functies die beschikbaar zijn in al onze Managed WordPress Hosting pakketten.

Steve Bonisteel Kinsta

Steve Bonisteel is Technical Editor bij Kinsta. Hij begon zijn schrijverscarrière als verslaggever en achtervolgde ambulances en brandweerwagens. Sinds eind jaren negentig schrijft hij over internetgerelateerde technologie.