15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
31.10.2024
1 +1

Wie man Redis auf Linux installiert und konfiguriert: Ein vollständiger Schritt-für-Schritt-Leitfaden

Redis ist ein leistungsstarker, quelloffener In-Memory-Datenspeicher, der häufig als Datenbank, Cache und Message Broker verwendet wird. Redis ist für seine außergewöhnliche Leistung und Vielseitigkeit bekannt und ist die erste Wahl für Entwickler, die Anwendungen durch das Caching häufig angeforderten Daten, die Verwaltung von Sitzungen und die Verarbeitung von Echtzeit-Analysen dramatisch beschleunigen möchten. Egal ob Sie eine hochfrequentierte Webanwendung auf einem VPS Hosting Plan betreiben oder eine dedizierte Infrastruktur verwalten, dieser umfassende Leitfaden führt Sie durch jeden Schritt der Installation, Konfiguration und Sicherung von Redis auf einem Linux-System.

Was ist Redis und warum sollten Sie es verwenden?

Bevor wir in den Installationsprozess eintauchen, lohnt es sich zu verstehen, was Redis so beliebt macht:

  • In-Memory-Speicher: Redis speichert Daten im RAM, was Lese- und Schreibvorgänge extrem schnell macht — oft in weniger als einer Millisekunde.
  • Vielseitige Datenstrukturen: Unterstützt Strings, Hashes, Listen, Sets, sortierte Sets, Bitmaps und mehr.
  • Persistenzoptionen: Obwohl Redis im Speicher arbeitet, kann es Daten auf die Festplatte speichern, um Neustarts zu überstehen.
  • Pub/Sub-Messaging: Redis unterstützt Publish/Subscribe-Messaging-Muster für Echtzeit-Kommunikation zwischen Services.
  • Breite Sprachunterstützung: Offizielle Client-Bibliotheken existieren für Python, PHP, Node.js, Java, Ruby, Go und viele mehr.

Redis ist besonders wertvoll in Umgebungen, in denen die Anwendungsleistung kritisch ist — zum Beispiel, wenn Ihr Backend auf einem Dedicated Server gehostet wird, der Millionen von Anfragen pro Tag verarbeitet.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie folgendes haben:

  • Einen Linux-Server mit Ubuntu/Debian oder CentOS/RHEL
  • Root- oder Sudo-Zugriff auf den Server
  • Ein grundlegendes Verständnis der Linux-Befehlszeile
  • Eine aktive Internetverbindung zum Herunterladen von Paketen

Schritt 1: Aktualisieren Sie Ihr System

Beginnen Sie immer mit der Aktualisierung des Paketindex Ihres Systems und der Aktualisierung installierter Pakete auf ihre neuesten Versionen. Dies gewährleistet Kompatibilität und Sicherheit:

sudo apt update && sudo apt upgrade -y

Für CentOS/RHEL Systeme:

sudo yum update -y

Die Aktualisierung Ihres Servers ist eine grundlegende Sicherheitspraxis, besonders in Produktionsumgebungen.

Schritt 2: Installieren Sie Redis

Die meisten großen Linux-Distributionen enthalten Redis in ihren offiziellen Paketrepositorys, was die Installation unkompliziert macht.

Auf Ubuntu / Debian

sudo apt install redis-server -y

Auf CentOS / RHEL

CentOS/RHEL-Systeme erfordern, dass das EPEL (Extra Packages for Enterprise Linux) Repository zuerst aktiviert wird:

sudo yum install epel-release -y
sudo yum install redis -y

> Hinweis: Bei neueren Versionen von CentOS/RHEL (8+) können Sie dnf anstelle von yum verwenden:

> “`bash

> sudo dnf install redis -y

> “`

Schritt 3: Überprüfen Sie die Installation

Nachdem die Installation abgeschlossen ist, bestätigen Sie, dass Redis korrekt installiert wurde, indem Sie seine Version überprüfen:

redis-server --version

Erwartete Ausgabe (Beispiel):

Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=...

Wenn Sie eine Versionsnummer sehen, wurde Redis erfolgreich auf Ihrem System installiert.

Schritt 4: Starten Sie den Redis-Service und aktivieren Sie ihn

Nach der Installation müssen Sie den Redis-Service starten und konfigurieren, dass er beim Systemstart automatisch startet.

Auf Ubuntu / Debian

sudo systemctl start redis
sudo systemctl enable redis

Auf CentOS / RHEL

sudo systemctl start redis
sudo systemctl enable redis

Überprüfen Sie, ob Redis läuft

sudo systemctl status redis

Erwartete Ausgabe:

● redis.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis.service; enabled)
   Active: active (running) since ...

Ein grüner active (running) Status bestätigt, dass Redis korrekt funktioniert.

Schritt 5: Konfigurieren Sie Redis

Das Verhalten von Redis wird durch seine Hauptkonfigurationsdatei gesteuert:

  • Ubuntu/Debian: /etc/redis/redis.conf
  • CentOS/RHEL: /etc/redis.conf

Öffnen Sie die Konfigurationsdatei mit einem Texteditor:

sudo nano /etc/redis/redis.conf

Nachfolgend finden Sie die wichtigsten Konfigurationsoptionen, die Sie überprüfen und anpassen sollten.

5.1 Legen Sie ein Passwort fest (Authentifizierung)

Standardmäßig erfordert Redis keine Authentifizierung. Für jede Produktionsumgebung ist das Festlegen eines starken Passworts essentiell:

Finden Sie die Zeile mit # requirepass und aktualisieren Sie sie:

requirepass your_strong_password_here

Wählen Sie ein langes, zufällig generiertes Passwort. Redis ist extrem schnell, was bedeutet, dass Brute-Force-Angriffe ohne Ratenbegrenzung Hunderttausende von Vermutungen pro Sekunde versuchen können.

5.2 IP-Adresse binden

Standardmäßig bindet sich Redis nur an 127.0.0.1 (localhost), was externen Zugriff verhindert. Dies ist die sicherste Standardeinstellung.

Wenn Ihre Anwendung sich von einem anderen Server aus mit Redis verbinden muss, können Sie sich an eine zusätzliche IP-Adresse binden:

bind 127.0.0.1 192.168.1.100

> Sicherheitswarnung: Binden Sie Redis niemals an 0.0.0.0 (alle Schnittstellen) auf einem öffentlich zugänglichen Server ohne ordnungsgemäße Firewall-Regeln. Exponierte Redis-Instanzen sind ein häufiger Angriffsvektor.

5.3 Ändern Sie den Standardport

Redis lauscht standardmäßig auf Port 6379. Das Ändern dieses Ports fügt eine zusätzliche Sicherheitsebene hinzu:

port 6380

Denken Sie daran, Ihre Firewall-Regeln und Anwendungsverbindungszeichenfolgen zu aktualisieren, wenn Sie den Port ändern.

5.4 Wenden Sie Konfigurationsänderungen an

Nach dem Bearbeiten von redis.conf starten Sie den Redis-Service neu, um alle Änderungen anzuwenden:

sudo systemctl restart redis

Schritt 6: Testen Sie die Redis-Installation

Verwenden Sie die integrierte Redis CLI (Command Line Interface), um zu überprüfen, dass Redis korrekt funktioniert:

redis-cli

Wenn Sie ein Passwort festgelegt haben, authentifizieren Sie sich zuerst:

AUTH your_strong_password_here

Führen Sie einen Ping-Test durch

ping

Erwartete Antwort:

PONG

Legen Sie ein Schlüssel-Wert-Paar fest und rufen Sie es ab

SET mykey "Hello, Redis!"
GET mykey

Erwartete Antwort:

"Hello, Redis!"

Wenn Redis den gespeicherten Wert korrekt zurückgibt, ist Ihre Installation vollständig funktionsfähig und die Datenbank speichert und ruft Daten wie erwartet ab.

Beenden Sie die CLI

exit

Schritt 7: Konfigurieren Sie Redis als Background Daemon (Optional)

Wenn Sie möchten, dass Redis als Background-Daemon-Prozess läuft (anstelle eines Vordergrund-Prozesses), konfigurieren Sie die daemonize Option in redis.conf:

daemonize yes

Nach dem Speichern der Datei starten Sie Redis neu:

sudo systemctl restart redis

Überprüfen Sie, dass der Service im Hintergrund läuft:

sudo systemctl status redis

Sie können auch bestätigen, dass der Redis-Prozess aktiv ist, indem Sie folgendes verwenden:

ps aux | grep redis

Schritt 8: Aktivieren Sie Redis-Persistenz (Optional, aber empfohlen)

Standardmäßig speichert Redis Daten nur im Speicher, was bedeutet, dass Daten verloren gehen, wenn der Server neu startet. Redis bietet zwei Persistenzmechanismen, um dies zu beheben:

Option 1: RDB (Redis Database Backup) — Snapshotting

RDB erstellt Point-in-Time-Snapshots Ihres Datensatzes in festgelegten Intervallen. Konfigurieren Sie es in redis.conf:

# Save a snapshot if at least 1 key changed in 900 seconds (15 minutes)
save 900 1

# Save a snapshot if at least 10 keys changed in 300 seconds (5 minutes)
save 300 10

# Save a snapshot if at least 10,000 keys changed in 60 seconds
save 60 10000

RDB ist effizient für Backups und Disaster Recovery, kann aber Daten verlieren, die zwischen Snapshots geschrieben wurden.

Option 2: AOF (Append Only File) — Write Logging

AOF protokolliert jeden Schreibvorgang in einer Datei und bietet viel stärkere Dauerhaftigkeitsgarantien:

appendonly yes

Sie können auch die AOF-Synchronisierungsrichtlinie konfigurieren:

# Options: always, everysec, no
appendfsync everysec
  • always — Am sichersten, aber am langsamsten (synchronisiert nach jedem Schreibvorgang)
  • everysec — Gutes Gleichgewicht zwischen Leistung und Sicherheit (synchronisiert jede Sekunde)
  • no — Am schnellsten, verlässt sich aber auf den OS-Flush-Zeitplan

> Best Practice: Für Produktionsumgebungen verwenden Sie sowohl RDB als auch AOF zusammen für maximale Datendauerhaftigkeit.

Schritt 9: Sicherung von Redis — Best Practices

Sicherheit ist kritisch für jede Redis-Bereitstellung. Befolgen Sie diese Best Practices, um Ihre Redis-Instanz zu härten:

1. Aktivieren Sie Passwort-Authentifizierung

Wie in Schritt 5.1 beschrieben, legen Sie immer einen starken requirepass Wert in redis.conf fest.

2. Beschränken Sie den Netzwerkzugriff

  • Binden Sie Redis an 127.0.0.1, es sei denn, Fernzugriff ist ausdrücklich erforderlich.
  • Verwenden Sie ein privates Netzwerk oder VPN für Redis-Kommunikation zwischen Servern.

3. Konfigurieren Sie Firewall-Regeln

Erlauben Sie Redis-Traffic nur von vertrauenswürdigen IP-Adressen. Verwenden Sie ufw auf Ubuntu:

sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379

Verwenden Sie firewalld auf CentOS/RHEL:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'
sudo firewall-cmd --reload

4. Benennen Sie gefährliche Befehle um oder deaktivieren Sie sie

Redis hat leistungsstarke administrative Befehle (wie FLUSHALL, CONFIG, DEBUG), die ausgenutzt werden könnten. Benennen Sie sie um oder deaktivieren Sie sie in redis.conf:

rename-command FLUSHALL ""
rename-command CONFIG "SECURE_CONFIG_XYZ123"
rename-command DEBUG ""

5. Führen Sie Redis als Nicht-Root-Benutzer aus

Das Redis-Paket in den meisten Distributionen erstellt bereits einen dedizierten redis Systembenutzer. Stellen Sie sicher, dass Redis niemals als Root ausgeführt wird.

6. Halten Sie Redis aktuell

Aktualisieren Sie Redis regelmäßig, um bekannte Sicherheitslücken zu patchen:

sudo apt update && sudo apt upgrade redis-server -y

Schritt 10: Integration von Redis mit Ihren Anwendungen

Mit Redis installiert und gesichert können Sie es jetzt in Ihren Anwendungs-Stack integrieren. Hier ist ein schneller Überblick über beliebte Sprachintegrationen:

Python — redis-py

pip install redis
import redis

r = redis.Redis(host='127.0.0.1', port=6379, password='your_password', decode_responses=True)
r.set('greeting', 'Hello from Python!')
print(r.get('greeting'))

PHP — phpredis Erweiterung

sudo apt install php-redis -y
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('your_password');
$redis->set('greeting', 'Hello from PHP!');
echo $redis->get('greeting');
?>

Node.js — ioredis

npm install ioredis
const Redis = require('ioredis');
const redis = new Redis({ host: '127.0.0.1', port: 6379, password: 'your_password' });

redis.set('greeting', 'Hello from Node.js!');
redis.get('greeting').then(value => console.log(value));

Redis integriert sich nahtlos mit praktisch jedem modernen Web-Framework und CMS, einschließlich WordPress, Laravel, Django und Express.js — was es zu einem unverzichtbaren Werkzeug für den Stack eines jeden Entwicklers macht.

Häufige Redis-Anwendungsfälle

Das Verständnis, wo Redis hervorragend funktioniert, hilft Ihnen, das Beste aus Ihrer Bereitstellung herauszuholen:

AnwendungsfallBeschreibung
SitzungsspeicherSpeichern Sie Benutzersitzungen in Redis für schnellen, skalierbaren Zugriff über mehrere App-Server
Datenbank-CachingCachen Sie teure SQL-Abfrageergebnisse, um die Datenbankbelastung zu reduzieren
RatenbegrenzungVerfolgen Sie API-Anfragezählungen pro Benutzer/IP mit Redis-Zählern
Echtzeit-LeaderboardsVerwenden Sie sortierte Sets, um Live-Rankings zu verwalten
NachrichtenwarteschlangeVerwenden Sie Redis-Listen oder Pub/Sub für leichte Task-Queues
VolltextsucheVerwenden Sie das RediSearch-Modul für schnelle Suchindexierung
15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen