So installieren und konfigurieren Sie Redis unter Ubuntu 16.04

Einführung

Redis ist ein speicherinterner Schlüsselwertspeicher, der für seine Flexibilität, Leistung und umfassende Sprachunterstützung bekannt ist. In diesem Handbuch wird gezeigt, wie Redis auf einem Ubuntu 16.04-Server installiert und konfiguriert wird.

Voraussetzungen

Um dieses Handbuch zu vervollständigen, benötigen Sie Zugriff auf einen Ubuntu 16.04-Server. Sie benötigen einen Benutzer ohne Rootberechtigung mit den Berechtigungensudo, um die für diesen Prozess erforderlichen Verwaltungsfunktionen ausführen zu können. Sie können lernen, wie Sie ein Konto mit diesen Berechtigungen einrichten, indem Sie unserenUbuntu 16.04 initial server setup guide folgen.

Wenn Sie bereit sind zu beginnen, melden Sie sich mit Ihremsudo-Benutzer bei Ihrem Ubuntu 16.04-Server an und fahren Sie unten fort.

Installieren Sie die Build- und Testabhängigkeiten

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

Dazu können wir das Metapaketbuild-essentialaus den Ubuntu-Repositorys installieren. Wir werden auch das Pakettclherunterladen, mit dem wir unsere Binärdateien testen können.

Wir können den Paketcache unseres lokalenaptaktualisieren und die Abhängigkeiten installieren, indem wir Folgendes eingeben:

sudo apt-get update
sudo apt-get install build-essential tcl

Redis herunterladen, kompilieren und installieren

Als nächstes können wir anfangen, Redis zu bauen.

Laden Sie den Quellcode herunter und extrahieren Sie ihn

Da wir den Quellcode, den wir langfristig kompilieren, nicht behalten müssen (wir können ihn jederzeit erneut herunterladen), erstellen wir das Verzeichnis/tmp. Gehen wir jetzt dorthin:

cd /tmp

Laden Sie jetzt die neueste stabile Version von Redis herunter. Dies ist immer beia stable download URL verfügbar:

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 in die gerade extrahierte Redis-Quellverzeichnisstruktur:

cd redis-stable

Erstellen und installieren Sie Redis

Jetzt können wir die Redis-Binärdateien kompilieren, indem wir Folgendes eingeben:

make

Führen Sie nach dem Kompilieren der Binärdateien die Testsuite aus, um sicherzustellen, dass alles ordnungsgemäß erstellt wurde. Sie können dies tun, indem Sie Folgendes eingeben:

make test

Dies dauert normalerweise einige Minuten. Sobald dies abgeschlossen ist, können Sie die Binärdateien auf dem System installieren, indem Sie Folgendes eingeben:

sudo make install

Redis konfigurieren

Nach der Installation von Redis können wir mit der Konfiguration beginnen.

Zu Beginn müssen wir ein Konfigurationsverzeichnis erstellen. Wir werden das herkömmliche/etc/redis-Verzeichnis verwenden, das durch Eingabe von: erstellt werden kann.

sudo mkdir /etc/redis

Kopieren Sie nun die im Redis-Quellarchiv enthaltene Redis-Beispielkonfigurationsdatei:

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

Als nächstes können wir die Datei öffnen, um einige Elemente in der Konfiguration anzupassen:

sudo nano /etc/redis/redis.conf

Suchen Sie in der Datei die Anweisungsupervised. Derzeit ist dies aufno eingestellt. Da wir ein Betriebssystem ausführen, das das systemd init-System verwendet, können wir dies insystemd ändern:

/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 systemd

. . .

Suchen Sie als Nächstes das Verzeichnisdir. Diese Option gibt das Verzeichnis an, in dem Redis persistente Daten speichert. Wir müssen einen Speicherort auswählen, für den Redis Schreibrechte besitzt und der von normalen Benutzern nicht angezeigt werden kann.

Wir werden dafür das Verzeichnis/var/lib/redisverwenden, das wir gleich erstellen werden:

/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 /var/lib/redis

. . .

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

Erstellen Sie eine Redis-System-Unit-Datei

Als Nächstes können wir eine systemd-Unit-Datei erstellen, damit das init-System den Redis-Prozess verwalten kann.

Erstellen und öffnen Sie die Datei/etc/systemd/system/redis.service, um loszulegen:

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

Im Inneren können wir den Abschnitt[Unit]beginnen, indem wir eine Beschreibung hinzufügen und eine Anforderung definieren, dass das Netzwerk verfügbar sein muss, bevor dieser Dienst gestartet wird:

/etc/systemd/system/redis.service

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

Im Abschnitt[Service] müssen wir das Verhalten des Dienstes angeben. Aus Sicherheitsgründen sollten wir unseren Dienst nicht alsroot ausführen. Wir sollten einen dedizierten Benutzer und eine Gruppe verwenden, die wir der Einfachheit halberredis nennen. Wir werden diese für einen Moment erstellen.

Um den Dienst zu starten, müssen wir nur die Binärdateiredis-serveraufrufen, die auf unsere Konfiguration verweist. Um dies zu stoppen, können wir den Befehl Redisshutdown verwenden, der mit der Binärdateiredis-cliausgeführt werden kann. Da Redis nach Möglichkeit Fehler beheben soll, setzen wir die DirektiveRestartauf "immer":

/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

Schließlich können wir im Abschnitt[Install] das systemd-Ziel definieren, an das der Dienst angehängt werden soll, wenn er aktiviert ist (konfiguriert, um beim Booten zu starten):

/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

[Install]
WantedBy=multi-user.target

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

Erstellen Sie den Redis-Benutzer, die Gruppe und die Verzeichnisse

Jetzt müssen wir nur noch den Benutzer, die Gruppe und das Verzeichnis erstellen, auf die wir in den beiden vorherigen Dateien verwiesen haben.

Beginnen Sie mit dem Erstellen des Benutzers und der Gruppe vonredis. Dies kann in einem einzigen Befehl erfolgen, indem Sie Folgendes eingeben:

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

Jetzt können wir das Verzeichnis/var/lib/rediserstellen, indem wir Folgendes eingeben:

sudo mkdir /var/lib/redis

Wir sollten den Benutzer- und Gruppenbesitz desredisfür dieses Verzeichnis angeben:

sudo chown redis:redis /var/lib/redis

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

sudo chmod 770 /var/lib/redis

Starten und testen Sie Redis

Jetzt können wir den Redis-Server starten.

Starten Sie den Redis Service

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

sudo systemctl start redis

Stellen Sie sicher, dass der Dienst keine Fehler aufweist, indem Sie Folgendes ausführen:

sudo systemctl status redis

Sie sollten etwas sehen, das so aussieht:

Output● redis.service - Redis Server
   Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2016-05-11 14:38:08 EDT; 1min 43s ago
  Process: 3115 ExecStop=/usr/local/bin/redis-cli shutdown (code=exited, status=0/SUCCESS)
 Main PID: 3124 (redis-server)
    Tasks: 3 (limit: 512)
   Memory: 864.0K
      CPU: 179ms
   CGroup: /system.slice/redis.service
           └─3124 /usr/local/bin/redis-server 127.0.0.1:6379

. . .

Testen Sie die Redis Instance-Funktionalität

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

Das solltest du sehen:

OutputPONG

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

set test "It's working!"
OutputOK

Rufen Sie jetzt den Wert ab, indem Sie Folgendes eingeben:

get test

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

Output"It's working!"

Verlassen Sie die Redis-Eingabeaufforderung, um zur Shell zurückzukehren:

exit

Als letzten Test starten wir die Redis-Instanz neu:

sudo systemctl restart redis

Stellen Sie nun 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!"

Wenn Sie fertig sind, kehren Sie wieder in die Shell zurück:

exit

Aktivieren Sie Redis, um beim Booten zu starten

Wenn alle Ihre Tests erfolgreich waren und Sie Redis automatisch starten möchten, wenn Ihr Server hochfährt, können Sie den systemd-Dienst aktivieren.

Geben Sie dazu Folgendes ein:

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

Fazit

Sie sollten jetzt eine Redis-Instanz auf Ihrem Ubuntu 16.04-Server installiert und konfiguriert haben. Weitere Informationen zum Sichern Ihrer Redis-Installation finden Sie in unserenHow To Secure Your Redis Installation on Ubuntu 14.04 (ab Schritt 3). Obwohl es für Ubuntu 14.04 geschrieben wurde, sollte es auch für 16.04 funktionieren.

Related