Mehrere Redis Instanzen auf einem Server

Redis ist ein In-Memory-Datenspeicher – das bedeutet ich kann darin Daten ablegen und wieder aufrufen. Im Gegensatz zu einer Datenbank werden diese aber nicht persistent – also auf der Festplatte – gespeichert sondern liegen nur im Arbeitsspeicher. Bei einem Neustart sind diese also wieder verloren. In Laravel kann Redis zum Beispiel als Sessionspeicher, Cachespeicher und Queuesystem verwendet werden.

Nun kann es manchmal vorkommen, dass wir mehrere Redis Instanzen auf einem Server benötigen. In diesem Artikel klären wir Schritt für Schritt, wie wir das in Ubuntu schaffen.

Warum mehrere Redis Instanzen?

Was gibt es nun für einen Grund, mehrere Redis Instanzen auf einem Server laufen zu lassen?

Folgendes Szenario:
In Laravel benutzen wir Redis zum Beispiel als Queue System. Das bedeutet unsere Anwendung schiebt eine Aufgabe auf der einen Seite in die Queue und im Hintergrund läuft ein regelmäßiger Worker, der sie auf der anderen Seite wieder entnimmt und abarbeitet – sehr praktisch für das Versenden von E-Mails zum Beispiel um die Ladezeit der Seite gering zu halten.

Nun möchten wir oft auf einem Server nicht nur eine Version (die live Version) unserer Webseite laufen lassen sondern vielleicht noch eine zweite, in der wir neu entwickelte Features testen können (die sogenannte staging Version). Für diese staging Version gelten andere Regeln – zum Beispiel könnte es hier sein, dass E-Mails gar nicht wirklich versendet werden sollen – ansonsten könnten unsere Kunden natürlich mit ganz schön viel Spam rechnen.

Arbeiten nun die live und die staging Version mit derselben Redis Instanz werden alle Aufgaben in dieselbe Queue gepusht – allerdings laufen vermutlich im Hintergrund auch zwei Worker, die diese Aufgaben abarbeiten. Und denen ist prinzipiell erstmal egal, ob eine Aufgabe nun aus der live oder der staging Version kommt. Es macht also viel mehr Sinn, diese beiden Websiteversionen auf verschiedene Redis Instanzen aufzuteilen.

 

 

Redis installieren

Bevor wir Redis starten können müssen wir es natürlich zuerst mal installieren. Glücklicherweise ist das unter Ubuntu 14.04 sehr einfach.
Zuerst updaten wir die verfügbaren Pakete mit dem Befehl

und dann installieren wir Redis einfach mit

Standardmäßig läuft Redis unter Port 6379. Und genau hier liegt auch das „Geheimnis“ hinter mehreren Redis Instanzen – wir können Redis einfach mehrfach starten und jeder Instanz sagen, sie soll auf einen eigenen Port hören. Diese verschiedenen Ports können wir dann in unseren verschiedenen Laravel Versionen einstellen.

 

Redis Port konfigurieren

Die Standardkonfiguration für unsere frisch installierte Redis Instanz liegt in der Datei

In dieser Datei finden wir alles, was wir für die Konfiguration von Redis benötigen. Beim Starten einer Redis Instanz können wir die Konfigurationsdatei mit angeben.
Das heißt wir können diese Datei einfach kopieren, die Einstellungen für die neue Instanz anpassen und diese dann starten.

 

 

Zum Kopieren der Datei verwenden wir folgenden Befehl

Der Name staging.conf ist natürlich nur ein Beispiel, allerdings sollten wir hier einen aussagekräftigen Namen verwenden, damit anderen Leuten (oder uns selbst in einigen Monaten) dann auch klar ist, welche Datei welche Konfiguration darstellt.

Danach öffnen wir die Datei mit dem Editor unserer Wahl und setzen folgende Einstellungen:

Nach dem Abspeichern ist dieser Teil bereits geschafft.

 

Zweite Redis Instanz starten

Starten und stoppen können wir unsere Redis Instanz über folgende Datei:

Da hier zum Beispiel auch die Konfiguration angegeben wird kopieren wir auch diese Datei mit

Danach bearbeiten wir die neu angelegte Datei und ändern folgende Einstellungen:

 

 

Nun ist auch schon alles vorbereitet und wir können unsere neue Redis Instanz mit folgendem Befehl starten:

Nun müssen wir nur noch darauf achten, in Laravel auch den oben vergebenen Port (in diesem Beispiel 6380) in der Redis Konfiguration zu verwenden.

 

 

Hast du noch weitere Tips zum Thema Server oder Redis die uns allen das Leben einfacher machen könnten? Wir freuen uns, wenn du sie in den Kommentaren mit uns teilst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*