Redis is een in-memory database met een hoge beschikbaarheid. De disk-persistente key-value gegevensopslag is ideaal voor meerdere gelijktijdige applicaties die een hoge beschikbaarheid vereisen.
Docker is daarentegen een hulpmiddel om applicaties en diensten te containeriseren, hun omgevingen te isoleren en ze afzonderlijk te laten draaien. Je kunt Docker gebruiken als een pakketbeheerder voor applicaties en diensten met alle benodigde afhankelijkheden, configuraties, scripts, enz. Een script genaamd een Dockerfile wordt in de Docker-container geplaatst en stelt je in staat om de container als één geheel uit te rollen.
Dit artikel leert je hoe je deze twee open-source technologieën effectief kunt gebruiken. Het gaat ook in op waarom het draaien van Redis clusters in Docker containers van vitaal belang is en wat de voordelen zijn ten opzichte van het draaien van Redis clusters op virtuele machines of bare metal servers.
De verschillende toepassingen van Redis
Redis heeft verschillende voordelen. De meest populaire toepassingen zijn:
-
- Gedistribueerde key-value databasecache
- Message broker
- Server voor persistente object caching
Bovendien kan Redis meerdere gegevenstypen en structuren ondersteunen, waardoor het geschikt is voor gebruik als primaire en secundaire databaselaag voor applicaties. Het ondersteunt verder lijsten, streams, hashes, sets, enz.
Je kunt de voordelen van Redis echter verder uitbreiden door het te containeriseren.
Redis werkt het beste in een container
Redis is een van de populairste Docker images in het Docker register, met meer dan een miljard downloads. De reden om Redis applicaties te containeriseren is om de voordelen van Docker en de ondersteuning van de gemeenschap te krijgen voor de meest voorkomende Redis gebruikssituaties.
Het Redis Docker image heeft een open-source gemeenschap die duidelijke documentatie maakt en onderhoudt. En als klap op de vuurpijl is Docker zeer betrouwbaar en maakt het eenvoudig gebruik en flexibiliteit mogelijk.
Gebruiksgemak
Docker isoleert de omgevingen voor zowel apps als diensten die in containers draaien. Isolatie betekent dat je Redis images kunt zippen, bouwen en versturen en dat ze altijd werken, ongeacht het besturingssysteem van de host, wat het ontwikkelen en draaien van Redis applicaties binnen Docker gemakkelijk maakt. Verder vereenvoudigt Docker Desktop het opzetten van een consistente lokale ontwikkelomgeving, wat vooral handig is voor grote teams.
Beveiliging
Je kunt met Redis binnen een container scannen op beveiligingslekken. Docker gebruikt Snyk, een tool die inzicht geeft in de veiligheid van Docker images. Deze scant Docker containers en geeft details en herstel in geval van corrupte images. Docker kan ook een software bill of material (SBOM) genereren voor het scannen van alle dependencies die gebruikt worden bij het bouwen van container images, hoewel dit nog experimenteel is.
Flexibiliteit
Docker is beschikbaar voor de meeste op Unix gebaseerde en Windows besturingssystemen en applicaties. Omdat je containers gebruikt om software te isoleren van zijn omgeving – zodat het met alle systemen werkt – draaien Redis apps en diensten altijd, ondanks de infrastructuur.
Betrouwbaarheid
Met Docker kun je elke gecontaineriseerde werklast betrouwbaar draaien in elke omgeving. Redis is betrouwbaar in Docker omdat Docker containers periodiek snapshots maken van het container image, waardoor je in geval van een slechte of corrupte database kunt terugvallen op deze snapshots. Je kunt ook een Docker volume aanmaken door een map met het Redis database bestand in de container te mounten.
Een Docker volume helpt om de container veilig te houden tegen elke vorm van onbedoeld gegevensverlies. Een voorbehoud is echter dat Docker volumes geen image snapshots bevatten. Je moet de gegevens in je Redis databasebestand periodiek handmatig opslaan of back-uppen.
Zo gebruik je Redis met Docker
Om je Redis store in een Docker container te plaatsen, moet je Docker in de target omgeving hebben. De volgende instructies laten zien hoe je Docker installeert op Windows.
Je kunt een gids volgen vanuit de Docker website voor een Unix of Unix gebaseerd OS. Na installatie en configuratie kun je een netwerk aanmaken binnen je Docker container. Vervolgens kun je Redis installeren en een database maken. Tot slot kun je bewerkingen uitvoeren op je Redis database.
Installeer eerst Docker op je besturingssysteem. Navigeer optioneel naar de Docker Hub en maak een account aan. Je hebt een account nodig om je images aan te maken en te publiceren.
Nadat je een account hebt aangemaakt, meld je je aan bij Docker Hub en download je de laatste versie van Docker Desktop van je besturingssysteem.
Ga na de installatieprocedure naar je terminalvenster om te zien of de Docker Engine klaar is om te draaien en voer het volgende commando in:
docker --version
Typ dan: docker-compose --version
.
Compose is een tool voor het definiëren en uitvoeren van multi-container Docker applicaties met behulp van YAML bestanden, die je gebruikt om applicatieservices te configureren.
Je kunt een Dockerized Redis draaien om te valideren dat de Docker Engine draait met de onderstaande code. Dit voorbeeld draait het Redis image van Docker Hub en noemt het my-redis-container.
docker run --name my-redis-container -d redis
Omdat je het image niet lokaal hebt, haalt Docker het Redis image op van de Docker Hub.
Nu kun je Docker Desktop openen om te bevestigen dat het de Redis image heeft opgehaald. Klik op het Dashboard op Images in het linkerpaneel.
Nu kun je een netwerk aanmaken. Let op dat de Docker driver de bridge of de overlay ingebouwde netwerkdrivers gebruikt om een Docker netwerk aan te maken. Je kunt ook een externe netwerkdrive installeren en gebruiken.
Het verschil is dat bridge netwerken geïsoleerd zijn op een enkele Docker Engine installatie, terwijl overlay netwerken meerdere Docker hosts bevatten, die elk een engine draaien.
Type nu:
docker network create -d bridge kinsta-demo-network
Als je standaard geen drive opgeeft, gebruikt Docker de bridge drive om een nieuw netwerk aan te maken, omdat het automatisch de bridge drive aanmaakt als je de Docker Engine installeert. Als je echter een Docker container uitvoert met het Docker run commando, zal deze dit netwerk niet gebruiken.
Nu je een netwerk hebt, is het installeren van Redis in de Docker container de volgende stap. Typ daarvoor: docker pull redis
.
Om te controleren of het Redis image correct is geïnstalleerd, voer je een van de volgende commando’s uit:
docker images
docker image ls
Vervolgens maak en start je de Redis container. Voer daarvoor het volgende commando uit:
docker run -it –name dev_kinsta_redis_container -d redis
Controleer nu of Redis in de container draait. Typ daarvoor: docker ps
.
Nu je hebt bevestigd dat je Docker container draait, kun je de container toevoegen aan het netwerk. Typ: docker network connect
.
Nu alles werkt zoals verwacht, is de volgende stap om te controleren of je Redis server die in Docker draait klaar is om verbindingen te accepteren. Gebruik daarvoor docker logs
.
Vervolgens moet je een database aanmaken omdat je een manier nodig hebt om verbinding te maken met de Redis container om commando’s op de server uit te voeren. Typ hiervoor: docker exec -it bash
. Je kunt de containernaam en container ID door elkaar gebruiken.
Gebruik in de container de CLI om commando’s uit te voeren. Merk op dat Redis automatisch Docker hosts heeft geïnstalleerd. Om de Redis-CLI te gebruiken typ je: redis-cli
.
Dit verbindt je met de standaardpoort voor Redis op de lokale host. Typ: ping
, en het antwoord zou pong
moeten zijn.
Selecteer vervolgens een database binnen je Redis server door dit te typen: select
. Hoewel de standaard database 0
is, selecteer je db 1
.
Voeg vervolgens gegevens in de database in. Gebruik het Redis SET
commando. Typ daarvoor SET <key> <value>
.
Bijvoorbeeld:
SET mykey "Hello"
Om dezelfde sleutel te krijgen, typ je:
get myKey
Om de waarde voor de sleutel te krijgen, voer je get
uit. Dit geeft de waarde terug. Controleer vervolgens je Redis database door MONITOR
te typen.
Stop tenslotte de Redis server door de CLI af te sluiten. Typ tweemaal exit
om de CLI en Redis af te sluiten.
Stop tenslotte de Redis container door docker stop
te typen.
Redis met DevKinsta
Met DevKinsta kun je een WordPress site verbinden met een Redis database. Met DevKinsta werkt de Redis add-on naadloos als een objectcache om gegevens over verschillende paginaladingen heen te persisten. Dit betekent dat je door de Redis add-on te gebruiken, de cache kunt gebruiken om objecten te hergebruiken in plaats van voortdurend de MySQL database te bevragen.
Na het downloaden en instellen van DevKinsta, installeer je de Docker Desktop als een dependency, die het gebruikt om lokale omgevingsbestanden binnen een container aan te maken. Met deze instelling kun je de Redis add-on in DevKinsta configureren.
Daarom kan de Redis add-on voor DevKinsta gebruikt worden als secundaire bron, waardoor de belasting van de primaire database vermindert, de responstijden toenemen en de applicatie sneller werkt.
Dit vertaalt zich in de app die meer belasting aankan en efficiënt schaalt. Bekijk dit artikel om de Redis plugin met je website te gebruiken.
Samenvatting
Er zijn veel voordelen aan het draaien van Redis in een Docker container. Het biedt een sandboxed omgeving voor je applicaties, dus je hoeft je niet langer zorgen te maken over het platform waarop je je applicaties deployt. Verder maakt Docker gebruiksgemak, flexibiliteit en hoge betrouwbaarheid mogelijk.
Wat beveiliging betreft, kun je out of the box controleren en scannen op beveiligingslekken met Synk, een tool die inzicht geeft in de veiligheid van Docker images. En wat flexibiliteit betreft: Docker werkt voor de meeste Unix gebaseerde en Windows besturingssystemen en toepassingen. Deze flexibiliteit betekent dat dockerized of gecontaineriseerde apps of diensten altijd draaien, ongeacht het OS.
Het is eenvoudig om Docker en de Redis add on te gebruiken met DevKinsta, dat een dockerized WordPress site lokaal opstart als je hem start. Bekijk DevKinsta en de Redis add-on om vandaag nog de kracht van Redis in Docker te krijgen.
Laat een reactie achter