Wat is Redis?
Redis is een veelzijdige in-geheugen data store die uitzonderlijke snelheid en eenvoud levert. Deze stap-voor-stap handleiding leert alles wat je moet weten om Redis aan de gang te krijgen in een Docker container. Containers bieden een vereenvoudigde inzet en draagbaarheid om Redis overal te draaien. Redis (Remote Dictionary Server) is een open-source, in-geheugen key-value database bekend om zijn snelheid en flexibiliteit.
Wat zijn de toepassingen van Redis?
Redis heeft verschillende voordelen. De meest populaire toepassingen zijn:
- Gedistribueerde database-cache met sleutelwaarde
- Berichtmakelaar (message broker)
- Persistent object caching server
Bovendien kan Redis meerdere datatypes en structuren ondersteunen, waardoor het geschikt is voor zowel een primaire als secundaire databaselaag voor toepassingen. Het ondersteunt ook lijsten, stromen, hashes, sets, enz.
We gaan in dit bericht in op de laatst genoemde functie om een persistente object cache mogelijk te maken voor wordpress of andere toepassingen die gebruik maken van het cachen van objecten (zoals bijvoorbeeld tubearchive).
Redis docker compose
Redis is een van de meest populaire Docker images in het register van Docker, met meer dan een miljard downloads (bron: kinsta.com). De Redis Docker image heeft een open-source community die duidelijke documentatie creëert en onderhoudt. En tot slot, Docker is zeer betrouwbaar en maakt gemakkelijk gebruik en flexibiliteit. Meer uitleg over Docker, klik voor ons bericht hierover.
De Docker Compose is een hulpmiddel voor het definiëren en uitvoeren van multi-container Docker-toepassingen met behulp van YAML-bestanden, waarmee je de applicatie kunt configureren. Je kunt een docker container van Redis opbouwen met behulp van onderstaande docker compose. Maak een stack aan in portainer en voer deze installatie configuratie in. Voer niet een aparte regel met “command: redis-server” in omdat zo niet de volledige redis-stack inclusief redis-insight beschikbaar komt.
redis:
image: redis/redis-stack:latest
container_name: redis
hostname: redis
restart: unless-stopped
mem_limit: 1g
cpu_shares: 1024
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
environment:
REDIS_ARGS: "--requirepass PASSWORD"
network_mode: host
volumes:
- redis_data:/data
- /volume1/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf
volumes:
redis_data:
Klik op het updaten van de stack en de container wordt aangemaakt. Na enige tijd (enkele seconden als het image al is gedownload) is de container operationeel. Ga naar http://je-NAS-IP-adres:8001 die je toegang geeft tot inzicht in het Redis dictionary geheugen. De Redis container is nu onder poort 6379 bereikbaar voor de Redis Object Cache plugin van WordPress of de Redis cache die Tubearchive gebruikt.
Beveiliging van Redis
Beveiliging van een Redis-database is cruciaal voor het beschermen van gegevens en het voorkomen van ongewenste toegang. Hier zijn enkele belangrijke stappen om de Redis-database te beveiligen:
- Wachtwoord instellen : Stel een wachtwoord in voor de Redis-server door middel van de
requirepass
optie in redis.conf. Dit configuratiebestand is te vinden onder de map zoals hierboven onder volumes: is aangeven. Deze optie zal ervoor zorgen dat alle communicatie met de server is versleuteld. Uncomment de regelrequirepass WACHTWOORD
. - Voeg aan wp-config.php voorafgaand aan de regel
/* That's all, stop editing! Happy publishing. */
het wachtwoord toe, als volgt:
define( 'WP_REDIS_PASSWORD', 'WACHTWOORD' );
Er zijn nog vele andere mogelijkheden om een Redis container toe te passen. Op de site van de Redis gemeenschap (redis.io) zijn voorbeelden van use cases uitgewerkt.