Redis ist ein Open-Source-In-Memory-Key-Value-Datenspeicher. Es kann als Datenbank, Cache und Message Broker verwendet werden und unterstützt verschiedene Datenstrukturen wie Strings, Hashes, Listen, Sets und mehr. Redis bietet Hochverfügbarkeit über Redis Sentinel und automatische Partitionierung über mehrere Redis-Knoten mit Redis Cluster.
In diesem Tutorial behandeln wir die Installation und Konfiguration von Redis auf einem Debian 10, Buster.
Installieren von Redis auf Debian #
Redis Version 5.0.x ist in den standardmäßigen Debian 10-Repositories enthalten. Um es zu installieren, führen Sie die folgenden Befehle als Root oder Benutzer mit sudo-Berechtigungen aus:
sudo apt update
sudo apt install redis-server
Der Redis-Dienst wird automatisch gestartet, wenn die Installation abgeschlossen ist. Sie können dies überprüfen, indem Sie Folgendes eingeben:
sudo systemctl status redis-server
Die Ausgabe sollte in etwa so aussehen:
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-11-28 14:15:23 PST; 27s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Main PID: 2024 (redis-server)
Tasks: 4 (limit: 2359)
Memory: 6.9M
CGroup: /system.slice/redis-server.service
└─2024 /usr/bin/redis-server 127.0.0.1:6379
Der Redis-Dienst kann nicht gestartet werden, wenn IPv6 auf Ihrem Server deaktiviert ist. Das ist es! Redis ist auf Ihrem Debian 10-Server installiert und wird ausgeführt, und Sie können es verwenden.
Redis-Fernzugriff konfigurieren #
Standardmäßig ist Redis so konfiguriert, dass es nur auf localhost lauscht. Sie können sich nur von dem Computer mit dem Redis-Server verbinden, auf dem der Redis-Dienst ausgeführt wird.
Wenn Sie ein Einzelserver-Setup verwenden, bei dem der Client, der sich mit der Datenbank verbindet, auch auf demselben Host ausgeführt wird, sollten Sie den Fernzugriff nicht aktivieren.
Um Redis so zu konfigurieren, dass Remote-Verbindungen akzeptiert werden, öffnen Sie die Redis-Konfigurationsdatei mit Ihrem Texteditor:
sudo vim /etc/redis/redis.conf
Suchen Sie nach einer Zeile, die mit bind 127.0.0.1 ::1
beginnt und kommentieren.
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# bind 127.0.0.1 ::1
Speichern Sie die Datei und schließen Sie den Editor.
Starten Sie den Redis-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart redis-server
Verwenden Sie ss
oder netstat
um zu überprüfen, ob Redis auf allen Schnittstellen auf Port 6379
lauscht :
ss -an | grep 6379
Sie sollten etwas wie das Folgende sehen:
tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:*
tcp LISTEN 0 128 [::]:6379 [::]:*
Außerdem müssen Sie eine Firewall-Regel hinzufügen, die Datenverkehr von Ihren Remote-Computern auf TCP-Port 6379
zulässt .
Angenommen, Sie verwenden UFW
um Ihre Firewall zu verwalten, und Sie möchten den Zugriff von 192.168.121.0/24
zulassen subnet, würden Sie den folgenden Befehl ausführen:
sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379
Stellen Sie sicher, dass Ihre Firewall so konfiguriert ist, dass sie nur Verbindungen von vertrauenswürdigen IP-Bereichen akzeptiert.
Wenn Sie fertig sind, verwenden Sie das redis-cli
Dienstprogramm, um die Verbindung zu testen, indem Sie den Redis-Server von Ihrem Remote-Computer aus pingen:
redis-cli -h <REDIS_IP_ADDRESS> ping
Der Befehl sollte eine Antwort von PONG
zurückgeben :
PONG