So installieren Sie Redis von Source unter Ubuntu 18.04

Einführung

Redis ist ein speicherinterner Schlüsselwertspeicher, der für seine Flexibilität, Leistung und umfassende Sprachunterstützung bekannt ist. Es wird häufig als Datenbank-, Cache- und Nachrichtenbroker verwendet und unterstützt eine Vielzahl von Datenstrukturen.

Dieses Tutorial zeigt, wie Sie Redis von der Quelle auf einem Ubuntu 18.04-Server installieren und konfigurieren. Bitte beachten Sie, dass Redis in weniger Schritten installiert werden kann, indem Sie es über die offiziellen Ubuntu-Repositories herunterladen und installieren. Informationen zum Installieren von Redis mit dieser Methode finden Sie in unserem Handbuch unter How to Install and Secure Redis unter Ubuntu 18.04.

Voraussetzungen

Um dieses Handbuch zu vervollständigen, benötigen Sie Zugriff auf einen Ubuntu 18.04-Server, der unter https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04 eingerichtet wurde Anleitung], einschließlich eines Nicht-Root-Benutzers mit "+ sudo +" - Berechtigungen und einer Firewall.

Wenn Sie bereit sind, melden Sie sich mit Ihrem Benutzer "+ sudo +" bei Ihrem Ubuntu 18.04-Server an und fahren Sie unten fort.

Schritt 1 - Installieren der Build- und Testabhängigkeiten

Um die neueste Version von Redis zu erhalten, werden wir die Software aus dem Quellcode kompilieren und installieren. Bevor Sie den Quellcode herunterladen, müssen Sie die Build-Abhängigkeiten erfüllen, damit Sie die Software kompilieren können.

Installieren Sie dazu das + build-essential + Meta-Paket aus den Ubuntu-Repositories. Laden Sie außerdem das Paket + tcl + herunter, mit dem Sie die Binärdateien testen können.

Aktualisieren Sie Ihren lokalen "+ apt +" - Paketcache und installieren Sie die Abhängigkeiten, indem Sie Folgendes eingeben:

sudo apt update
sudo apt install build-essential tcl

Damit sind alle Build- und Testabhängigkeiten auf Ihrem Server installiert und Sie können mit der Installation von Redis selbst beginnen.

Schritt 2 - Herunterladen, Kompilieren und Installieren von Redis

Nach der Installation der Abhängigkeiten können Sie Redis installieren, indem Sie den Quellcode herunterladen, kompilieren und anschließend erstellen. Da Sie den Redis-Quellcode nicht für längere Zeit behalten müssen (Sie können ihn jederzeit erneut herunterladen), laden Sie den Quellcode in Ihr "+ / tmp +" - Verzeichnis herunter.

Beginnen Sie mit der Navigation in dieses Verzeichnis:

cd /tmp

Verwenden Sie anschließend "+ curl +", um die neueste stabile Version von Redis herunterzuladen. Die neueste Version finden Sie immer unter a stable download URL:

curl -O http://download.redis.io/redis-stable.tar.gz

Packen Sie den Tarball aus, indem Sie Folgendes eingeben:

tar xzvf redis-stable.tar.gz

Wechseln Sie dann in die gerade extrahierte Redis-Quellverzeichnisstruktur:

cd redis-stable

Kompilieren Sie die Redis-Binärdateien, indem Sie Folgendes eingeben:

make

Nachdem die Binärdateien kompiliert wurden, führen Sie die Testsuite aus, um sicherzustellen, dass alles korrekt erstellt wurde:

make test

Dies dauert in der Regel einige Minuten. Wenn der Test abgeschlossen ist, installieren Sie die Binärdateien auf dem System, indem Sie Folgendes eingeben:

sudo make install

Das ist alles für die Installation von Redis und jetzt können Sie mit der Konfiguration beginnen. Zu diesem Zweck müssen Sie ein Konfigurationsverzeichnis erstellen. Das Redis-Konfigurationsverzeichnis befindet sich normalerweise im Verzeichnis "+ / etc / +", und Sie können es dort erstellen, indem Sie Folgendes eingeben:

sudo mkdir /etc/redis

Kopieren Sie als Nächstes die im Redis-Quellarchiv enthaltene Redis-Beispielkonfigurationsdatei:

sudo cp /tmp/redis-stable/redis.conf /etc/redis

Öffnen Sie die Datei mit Ihrem bevorzugten Texteditor, um einige Änderungen an der Konfiguration vorzunehmen:

sudo nano /etc/redis/redis.conf

Suchen Sie in der Datei die Anweisung + supervised +. Mit dieser Anweisung können Sie ein Init-System deklarieren, um Redis als Dienst zu verwalten, und so mehr Kontrolle über dessen Betrieb erhalten. Die Direktive "+ überwacht " ist standardmäßig auf " nein " gesetzt. Da Sie Ubuntu ausführen, das das System systemd init verwendet, ändern Sie dies in " systemd +":

/etc/redis/redis.conf

. . .

# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#   supervised no      - no supervision interaction
#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#   supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#       They do not enable continuous liveness pings back to your supervisor.
supervised

. . .

Suchen Sie als nächstes die Direktive + dir +. Diese Option gibt das Verzeichnis an, in dem Redis persistente Daten speichert. Sie müssen dies in einen Speicherort ändern, an dem Redis über Schreibberechtigungen verfügt und der von normalen Benutzern nicht angezeigt werden kann.

Verwenden Sie dazu das Verzeichnis + / var / lib / redis +; Sie erstellen dieses Verzeichnis und passen seine Berechtigungen später in Schritt 4 an:

/etc/redis/redis.conf

. . .

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir

. . .

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Dies sind alle Änderungen, die Sie an der Redis-Konfigurationsdatei vornehmen müssen. Sie müssen jedoch noch einige Schritte ausführen, z. B. die Konfiguration von Redis für die Ausführung als Dienst und das Erstellen eines dedizierten Benutzers und einer dedizierten Gruppe, bevor Sie mit der Verwendung beginnen können es.

Schritt 3 - Erstellen einer Redis-System-Unit-Datei

Um mehr Kontrolle darüber zu haben, wie Sie Redis verwalten, können Sie eine systemd-Unit-Datei erstellen, die es Ihnen ermöglicht, als systemd-Dienst zu fungieren. Dies hat auch den Vorteil, dass Redis beim Booten des Servers problemlos gestartet werden kann.

Erstellen und öffnen Sie die Datei "+ / etc / systemd / system / redis.service +", um zu beginnen:

sudo nano /etc/systemd/system/redis.service

Beginnen Sie den Abschnitt "+ [Unit] +", indem Sie eine Beschreibung des Dienstes hinzufügen und eine Anforderung definieren, dass das Netzwerk verfügbar sein muss, bevor es gestartet wird:

/etc/systemd/system/redis.service

Im Abschnitt "+ [Service] +" legen Sie das Verhalten des Service fest. Aus Sicherheitsgründen sollten Sie diesen Dienst nicht als * root * ausführen. Sie sollten stattdessen einen dedizierten Benutzer und eine dedizierte Gruppe verwenden. Der Einfachheit halber können Sie beide * redis * aufrufen. Sie werden diese für einen Moment erstellen.

Um den Dienst zu starten, müssen Sie nur die Binärdatei "+ redis-server " aufrufen und auf Ihre Konfiguration verweisen. Um dies zu stoppen, verwenden Sie den Befehl Redis ` shutdown `, den Sie mit der Binärdatei ` redis-cli ` ausführen können. Da es wünschenswert ist, dass Redis nach Möglichkeit eine Wiederherstellung nach Fehlern durchführt, setzen Sie die Direktive " Restart " auf " always +":

/etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

Fügen Sie abschließend einen Abschnitt + [Install] + hinzu. Definieren Sie dort das systemd-Ziel, mit dem der Dienst verbunden werden soll, wenn es aktiviert ist (dh, es ist so konfiguriert, dass es beim Booten gestartet wird):

/etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Die Redis-System-Unit-Datei ist fertig. Bevor es jedoch verwendet werden kann, müssen Sie den dedizierten Benutzer und die dedizierte Gruppe erstellen, auf die Sie im Abschnitt "+ [Service] +" verwiesen haben, und ihnen die Berechtigungen erteilen, die sie benötigen, um zu funktionieren.

Schritt 4 - Redis-Benutzer, -Gruppe und -Verzeichnisse erstellen

Als letztes müssen Sie vor dem Starten und Testen von Redis den Benutzer, die Gruppe und das Verzeichnis erstellen, auf die Sie in den beiden vorherigen Dateien verwiesen haben.

Beginnen Sie mit dem Erstellen des Benutzers und der Gruppe * redis *. Sie können dies mit einem einzigen Befehl tun, indem Sie Folgendes eingeben:

sudo adduser --system --group --no-create-home redis

Erstellen Sie als nächstes das Verzeichnis "+ / var / lib / redis " (auf das in der in Schritt 2 erstellten Datei " redis.conf +" verwiesen wird), indem Sie Folgendes eingeben:

sudo mkdir /var/lib/redis

Geben Sie dem Benutzer und der Gruppe "+ redis +" das Eigentumsrecht für dieses Verzeichnis:

sudo chown redis:redis /var/lib/redis

Passen Sie abschließend die Berechtigungen so an, dass normale Benutzer nicht auf diesen Speicherort zugreifen können:

sudo chmod 770 /var/lib/redis

Sie haben alle Komponenten installiert, die Redis benötigt, um zu funktionieren. Jetzt können Sie den Redis-Dienst starten und seine Funktionalität testen.

Schritt 5 - Starten und Testen von Redis

Starten Sie den systemd-Dienst, indem Sie Folgendes eingeben:

sudo systemctl start redis

Stellen Sie sicher, dass der Dienst keine Fehler enthält, indem Sie Folgendes ausführen:

sudo systemctl status redis

Dies erzeugt eine Ausgabe ähnlich der folgenden:

Output● redis.service - Redis In-Memory Data Store
  Loaded: loaded (/etc/systemd/system/redis.service; disabled; vendor preset: enabled)
  Active: active (running) since Tue 2018-05-29 17:49:11 UTC; 4s ago
Main PID: 12720 (redis-server)
   Tasks: 4 (limit: 4704)
  CGroup: /system.slice/redis.service
          └─12720 /usr/local/bin/redis-server 127.0.0.1:6379
. . .

Stellen Sie mit dem Befehlszeilenclient eine Verbindung zum Redis-Server her, um zu testen, ob Ihr Dienst ordnungsgemäß funktioniert:

redis-cli

Testen Sie in der folgenden Eingabeaufforderung die Konnektivität, indem Sie Folgendes eingeben:

ping

Dies wird zurückkehren:

OutputPONG

Überprüfen Sie als Nächstes, ob Sie Schlüssel festlegen können, indem Sie Folgendes eingeben:

set test "It's working!"
OutputOK

Rufen Sie den Wert "+ test +" ab, indem Sie Folgendes eingeben:

get test

Sie sollten in der Lage sein, den von Ihnen gespeicherten Wert abzurufen:

Output"It's working!"

Nachdem Sie bestätigt haben, dass Sie den Wert abrufen können, beenden Sie die Eingabeaufforderung Redis, um zur Shell zurückzukehren:

exit

Als letzten Test prüfen wir, ob Redis Daten auch dann beibehalten kann, wenn sie gestoppt oder neu gestartet wurden. Starten Sie dazu zuerst die Redis-Instanz neu:

sudo systemctl restart redis

Stellen Sie dann erneut eine Verbindung mit dem Client her und vergewissern Sie sich, dass Ihr Testwert noch verfügbar ist:

redis-cli
get test

Der Wert Ihres Schlüssels sollte weiterhin verfügbar sein:

Output"It's working!"

Verlasse die Shell wieder, wenn du fertig bist:

exit

Angenommen, all diese Tests haben funktioniert und Sie möchten Redis automatisch starten, wenn Ihr Server hochfährt, aktivieren Sie den systemd-Dienst:

sudo systemctl enable redis
OutputCreated symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.

Damit ist Ihre Redis-Installation voll funktionsfähig.

Fazit

In diesem Lernprogramm haben Sie Redis aus dem Quellcode installiert, kompiliert und erstellt, es für die Ausführung als systemd-Dienst konfiguriert und überprüft, ob Ihre Redis-Installation ordnungsgemäß funktioniert. Als sofortigen nächsten Schritt empfehlen wir Ihnen dringend, Ihre Redis-Installation zu sichern, indem Sie unserem Leitfaden unter https://www.digitalocean.com/community/tutorials/how-to-secure-your-redis-installation-on- folgen. ubuntu-18-04 [So sichern Sie Ihre Redis-Installation unter Ubuntu 18.04].