Redis ist eine hochverfügbare In-Memory-Datenbank. Der plattenresistente Key-Value-Datenspeicher eignet sich ideal für zahlreiche hochverfügbare Anwendungen.
Docker hingegen ist ein Tool zur Containerisierung von Anwendungen und Diensten, mit dem sich deren Umgebungen isolieren und separat ausführen lassen. Du kannst Docker als Paketmanager für Anwendungen und Dienste mit allen notwendigen Abhängigkeiten, Konfigurationen, Skripten usw. verwenden. Ein Skript, das Dockerfile genannt wird, wird in den Docker-Container eingefügt und ermöglicht es dir, den Container als eine einzige Einheit einzusetzen.
In diesem Artikel erfährst du, wie du diese beiden Open-Source-Technologien effektiv nutzen kannst. Außerdem wird erläutert, warum der Betrieb von Redis-Clustern in Docker-Containern so wichtig ist und welche Vorteile dies im Vergleich zum Betrieb von Redis-Clustern auf virtuellen Maschinen oder Bare-Metal-Servern hat.
Die verschiedenen Einsatzmöglichkeiten von Redis
Redis hat mehrere Vorteile. Zu den beliebtesten Anwendungen gehören:
- Verteilter Cache für Schlüsselwert-Datenbanken
- Nachrichten-Broker
- Persistenter Objekt-Caching-Server
Außerdem kann Redis mehrere Datentypen und -strukturen unterstützen, so dass es sich sowohl als primäre als auch als sekundäre Datenbankschicht für Anwendungen eignet. Es unterstützt auch Listen, Streams, Hashes, Sets usw.
Du kannst die Vorteile von Redis aber noch weiter ausbauen, indem du es in Container packst.
Redis ist am besten in einem Container
Redis ist mit über einer Milliarde Downloads eines der beliebtesten Docker-Images in der Docker-Registry. Der Grund für die Containerisierung von Redis-Anwendungen ist, dass du die Vorteile von Docker und die Unterstützung der Community für die häufigsten Anwendungsfälle von Redis nutzen kannst.
Für das Redis-Docker-Image gibt es eine Open-Source-Community, die eine klare Dokumentation erstellt und pflegt. Und obendrein ist Docker äußerst zuverlässig und ermöglicht eine einfache Nutzung und Flexibilität.
Benutzerfreundlichkeit
Docker isoliert die Umgebungen sowohl für Anwendungen als auch für Dienste, die in Containern laufen. Die Isolierung bedeutet, dass du Redis-Images verpacken, erstellen und ausliefern kannst, die unabhängig vom Host-Betriebssystem funktionieren, was die Entwicklung und den Betrieb von Redis-Anwendungen in Docker erleichtert. Außerdem vereinfacht Docker Desktop die Einrichtung einer konsistenten lokalen Entwicklungsumgebung, was besonders für große Teams nützlich ist.
Sicherheit:
Du kannst Redis innerhalb eines Containers auf Sicherheitsschwachstellen überprüfen. Docker nutzt Snyk, ein Tool, das Einblick in die Sicherheit von Docker-Images gibt. Es scannt Docker-Container und liefert Details und Abhilfemaßnahmen im Falle von beschädigten Images. Docker kann auch eine Software Bill of Material (SBOM) erstellen, um alle Abhängigkeiten zu scannen, die bei der Erstellung von Container-Images verwendet werden, allerdings ist dies noch experimentell.
Flexibilität
Docker ist für die meisten Unix-basierten und Windows-Betriebssysteme und Anwendungen verfügbar. Da du Container verwendest, um Software von ihrer Umgebung zu isolieren und sicherzustellen, dass sie mit allen Systemen funktioniert, laufen Redis-Anwendungen und -Dienste trotz der Infrastruktur immer.
Verlässlichkeit
Mit Docker kannst du jeden containerisierten Workload in jeder Umgebung zuverlässig ausführen. Redis ist in Docker zuverlässig, weil Docker-Container regelmäßig Snapshots des Container-Images erstellen, auf die du im Falle einer fehlerhaften oder beschädigten Datenbank zurückgreifen kannst. Du kannst auch ein Docker-Volume erstellen, indem du ein Verzeichnis mit der Redis-Datenbankdatei innerhalb des Containers einhängst.
Ein Docker-Volume hilft dabei, den Container vor versehentlichem Datenverlust zu schützen. Ein Nachteil ist jedoch, dass Docker-Volumes keine Image-Snapshots enthalten. Du musst die Daten in deiner Redis-Datenbankdatei regelmäßig manuell speichern.
Wie du Redis mit Docker verwendest
Um deinen Redis-Speicher in einen Docker-Container einzubinden, musst du Docker in der Zielumgebung haben. Die folgende Anleitung zeigt dir, wie du Docker unter Windows installierst.
Für ein Unix- oder Unix-basiertes Betriebssystem kannst du einer Anleitung auf der Docker-Website folgen. Nach der Installation und Konfiguration kannst du ein Netzwerk innerhalb deines Docker-Containers erstellen. Dann kannst du Redis installieren und eine Datenbank erstellen. Schließlich kannst du Operationen mit deiner Redis-Datenbank durchführen.
Installiere zunächst Docker auf deinem Betriebssystem. Optional kannst du zum Docker Hub navigieren und ein Konto erstellen. Du brauchst ein Konto, um deine Images zu erstellen und zu veröffentlichen.
Nachdem du ein Konto erstellt hast, melde dich bei Docker Hub an und lade die neueste Version von Docker Desktop für dein Betriebssystem herunter.
Nach der Installation gehst du in dein Terminalfenster, um zu sehen, ob die Docker-Engine betriebsbereit ist, und gibst den folgenden Befehl ein:
docker --version
Gib dann ein: docker-compose --version
.
Compose ist ein Tool zur Definition und Ausführung von Multi-Container-Docker-Anwendungen mithilfe von YAML-Dateien, die du zur Konfiguration von Anwendungsdiensten verwendest.
Du kannst ein Dockerized Redis ausführen, um zu überprüfen, ob die Docker-Engine betriebsbereit ist, indem du den folgenden Code verwendest. In diesem Beispiel wird das Redis-Image von Docker Hub ausgeführt und als my-redis-container bezeichnet.
docker run --name my-redis-container -d redis
Da du das Image nicht lokal hast, zieht Docker das Redis-Image aus dem Docker Hub.
Jetzt kannst du Docker Desktop öffnen, um zu bestätigen, dass das Redis-Image gezogen wurde. Im Dashboard klickst du auf der linken Seite auf Images.
Jetzt kannst du ein Netzwerk erstellen. Beachte, dass der Docker-Treiber die eingebauten Netzwerk-Treiber Bridge oder Overlay verwendet, um ein Docker-Netzwerk zu erstellen. Du kannst auch einen Netzwerktreiber eines Drittanbieters installieren und verwenden.
Der Unterschied besteht darin, dass Bridge-Netzwerke auf einer einzigen Docker-Engine-Installation isoliert sind, während Overlay-Netzwerke mehrere Docker-Hosts umfassen, auf denen jeweils eine Engine läuft.
Typ:
docker network create -d bridge kinsta-demo-network
Wenn du standardmäßig keine Treiber angibst, verwendet Docker den Bridge-Treiber, um ein neues Netzwerk zu erstellen, da es den Bridge-Treiber automatisch erstellt, wenn du die Docker Engine installierst. Wenn du jedoch einen Docker-Container mit dem Befehl Docker run ausführst, wird er dieses Netzwerk nicht verwenden.
Jetzt, da du ein Netzwerk hast, musst du Redis innerhalb des Docker-Containers installieren. Gib dazu Folgendes ein: docker pull redis
.
Um zu überprüfen, ob das Redis-Image richtig installiert ist, führe einen der folgenden Befehle aus:
docker images
docker image ls
Als nächstes erstellst und startest du den Redis-Container. Dazu führst du den folgenden Befehl aus:
docker run -it –name dev_kinsta_redis_container -d redis
Überprüfe nun, ob Redis in dem Container läuft. Dazu gibst du ein: docker ps
.
Nachdem du sichergestellt hast, dass dein Docker-Container läuft, kannst du ihn dem Netzwerk hinzufügen. Gib ein: docker network connect
.
Wenn alles wie erwartet funktioniert, musst du im nächsten Schritt überprüfen, ob dein Redis-Server, der in Docker läuft, bereit ist, Verbindungen anzunehmen. Verwende dazu docker logs
.
Als Nächstes musst du eine Datenbank erstellen, denn du brauchst eine Möglichkeit, dich mit dem Redis-Container zu verbinden, um Befehle auf dem Server auszuführen. Dazu gibst du ein: docker exec -it bash
. Du kannst den Containernamen und die Container-ID austauschbar verwenden.
Verwende im Container die CLI, um Befehle auszuführen. Beachte, dass Redis automatisch Docker-Hosts installiert hat. Um die Redis-CLI zu verwenden, gibst du ein: redis-cli
.
Damit wirst du mit dem Standardport für Redis auf dem lokalen Host verbunden. Gib ein: ping
, und die Antwort sollte pong
lauten.
Als Nächstes wählst du eine Datenbank innerhalb deines Redis-Servers aus, indem du select
eingibst. Obwohl die Standarddatenbank 0
ist, wähle db 1
.
Als nächstes fügst du Daten in die Datenbank ein. Verwende den Redis-Befehl SET
. Gib dazu SET <key> <value>
ein.
Zum Beispiel:
SET mykey "Hello"
Um denselben Schlüssel zu erhalten, gibst du ein:
get myKey
Um den Wert des Schlüssels zu erhalten, führe get
aus. Dies gibt den Wert zurück. Als nächstes überprüfst du deine Redis-Datenbank, indem du MONITOR
eingibst.
Zum Schluss beendest du den Redis-Server, indem du das CLI beendest. Gib zweimal exit
ein, um die CLI und Redis zu beenden.
Beende schließlich den Redis-Container, indem du docker stop
eingibst.
Redis mit DevKinsta
Mit DevKinsta kannst du eine WordPress-Seite mit einer Redis-Datenbank verbinden. Mit DevKinsta funktioniert das Redis-Add-on nahtlos als Objekt-Cache, um Daten über mehrere Seitenladungen hinweg zu erhalten. Das bedeutet, dass du mit dem Redis-Add-on den Cache nutzen kannst, um Objekte wiederzuverwenden, anstatt ständig die MySQL-Datenbank abzufragen.
Nachdem du DevKinsta heruntergeladen und eingerichtet hast, installierst du den Docker Desktop als Abhängigkeit, mit dem er lokale Umgebungsdateien in einem Container erstellt. Mit dieser Einrichtung kannst du das Redis Add-on in Devkinsta konfigurieren.
So kann das Redis-Add-on für DevKinsta als sekundäre Quelle genutzt werden, was die Belastung der primären Datenbank verringert, die Antwortzeiten erhöht und die Anwendung schneller arbeiten lässt.
Das bedeutet, dass die App mehr Last bewältigen und effizient skalieren kann. Schau dir unsere Dokumentation zur Verwendung von Redis als dauerhaften Objekt-Cache für deine WordPress Webseite an.
Zusammenfassung
Es hat viele Vorteile, Redis in einem Docker-Container auszuführen. Er bietet eine Sandbox-Umgebung für deine Anwendungen, so dass du dich nicht mehr um die Plattform kümmern musst, auf der du deine Anwendungen einsetzt. Außerdem ermöglicht Docker eine einfache Nutzung, Flexibilität und hohe Zuverlässigkeit.
Was die Sicherheit angeht, kannst du mit Synk, einem Tool, das die Sicherheit von Docker-Images überprüft, sofort nach dem Auspacken nach Sicherheitslücken suchen. Und was die Flexibilität angeht, so funktioniert Docker für die meisten Unix-basierten und Windows-Betriebssysteme und Anwendungen. Diese Flexibilität bedeutet, dass gedockte oder containerisierte Anwendungen oder Dienste immer laufen, unabhängig vom Betriebssystem.
Es ist ganz einfach, Docker und das Redis-Add-on mit DevKinsta zu nutzen, das eine gedockte WordPress-Website lokal startet, wenn du es startest. Probiere DevKinsta und das Redis Add-on aus, um die Leistungsfähigkeit von Redis in Docker noch heute zu nutzen.
Schreibe einen Kommentar