Redis
Kurze Zusammenfassung
Redis (steht für Remote Dictionary Server) ist ein quelloffener, extrem schneller In-Memory-Datenspeicher (Key-Value-Store). Im Gegensatz zu herkömmlichen Datenbanken, die Daten auf langsameren Festplatten oder SSDs speichern, hält Redis alle Daten direkt im Arbeitsspeicher (RAM) des Servers. Es wird primär als Datenbank, Caching-System, Message-Broker und Streaming-Engine verwendet. Der Hauptgrund für den Einsatz von Redis ist die beispiellose Geschwindigkeit. Da Lese- und Schreibzugriffe im Arbeitsspeicher stattfinden, erreicht Redis Antwortzeiten im Mikro- oder sogar Nanosekundenbereich. Bei dynamischen Webanwendungen (wie WordPress, Magento oder individuellen Web-Apps) wird Redis meist als „Object Cache“ eingesetzt, um das System zu entlasten. Es speichert die Ergebnisse ressourcenintensiver Datenbankabfragen zwischen, sodass diese bei wiederholten Anfragen sofort aus dem RAM geliefert werden können, anstatt die Hauptdatenbank (z. B. MySQL) erneut zu belasten.
Die häufigsten Fragen zu: Redis
Ersetzt Redis eine herkömmliche Datenbank wie MySQL?
Nein, in den meisten Web-Szenarien arbeitet Redis ergänzend zu einer relationalen Datenbank wie MySQL oder PostgreSQL. Während die Hauptdatenbank als dauerhafter, strukturierter Langzeitspeicher für alle Daten dient, agiert Redis als eine Art vorgelagerter Hochgeschwindigkeits-Zwischenspeicher für häufig benötigte Daten.
Wie unterscheidet sich Redis von Memcached?
Sowohl Redis als auch Memcached sind beliebte In-Memory-Datenspeicher. Memcached ist jedoch rein auf einfache Text-Strings ausgelegt und sehr minimalistisch. Redis hingegen unterstützt komplexe Datenstrukturen (Listen, Hashes, Sets), bietet Persistenz-Optionen (Speicherung auf Festplatte) und fortgeschrittene Features wie Replikation. Redis ist heute aufgrund seiner Vielseitigkeit der de-facto Standard.
Welche Vorteile bringt Redis für mein WordPress-System?
In WordPress reduziert Redis die Ladezeiten des Backends und Frontends spürbar. Besonders bei dynamischen Elementen, die nicht von einem Seiten-Cache (wie dem LiteSpeed Cache) abgedeckt werden können – beispielsweise der WooCommerce-Warenkorb, eingeloggte Benutzer oder Suchergebnisse –, fängt Redis die ständigen Datenbankabfragen ab und beschleunigt die Auslieferung drastisch.
Ausführliche Erklärung zu: Redis
Die In-Memory-Architektur
Das Geheimnis der Leistung von Redis liegt in der physischen Verortung der Daten. Festplatten (selbst moderne NVMe-SSDs) benötigen Zeit, um Datenblöcke zu finden und zu lesen. Der Arbeitsspeicher (RAM) eines Servers ist um ein Vielfaches schneller. Indem Redis alle Schlüssel-Wert-Paare im RAM hält, entfällt der sogenannte „Disk-I/O-Overhead“ (Input/Output). Dies ermöglicht es Redis, Millionen von Lese- und Schreiboperationen pro Sekunde bei minimaler Latenz zu verarbeiten.
Object Caching in der Praxis
Wenn ein Benutzer eine Webseite aufruft, muss die Anwendung (z.B. PHP) oft Dutzende komplexe Abfragen an die MySQL-Datenbank senden. Mit Redis als Object Cache fragt die Anwendung zuerst bei Redis an: „Hast du das Ergebnis für diese Datenbankabfrage schon?“
-
Cache Hit: Wenn ja, liefert Redis das Ergebnis in Mikrosekunden. Die MySQL-Datenbank wird komplett geschont.
-
Cache Miss: Wenn nein, wird die MySQL-Datenbank regulär abgefragt. Das Ergebnis wird dann aber sofort in Redis gespeichert, damit der nächste Besucher sofort profitiert.
Höchste Performance durch UNIX Socket-Integration (Der FastPress-Vorteil)
Standardmäßig kommunizieren Webanwendungen und PHP mit Redis über das Netzwerkprotokoll TCP/IP (meist über localhost und den Port 6379). Bei FastPress haben wir uns jedoch für einen effizienteren Weg entschieden: Wir integrieren Redis standardmäßig über UNIX Sockets.
Ein UNIX Socket ist ein Endpunkt für die direkte Datenkommunikation zwischen Prozessen auf demselben Betriebssystem. Anstatt den gesamten, ressourcenintensiven TCP/IP-Netzwerk-Stack zu durchlaufen, kommunizieren PHP und Redis direkt über eine physische Datei im Dateisystem (z. B. redis.sock).
Diese tiefgreifende Integration bietet Ihnen drei entscheidende Vorteile:
-
Drastisch reduzierte Latenz: Der Wegfall des Netzwerk-Overheads (Paketierung, Routing, TCP-Handshakes) führt zu einer bis zu 25 % schnelleren Datenübertragung zwischen Ihrer Anwendung und dem Cache. Im Hochleistungsbereich zählt jede Millisekunde.
-
Geringere CPU-Auslastung: Das Betriebssystem muss keine virtuellen Netzwerkpakete (Loopback) ver- und entschlüsseln. Das schont die Server-CPU, wodurch mehr Rechenleistung für die eigentliche Generierung Ihrer Website zur Verfügung steht.
-
Maximale Sicherheit: Ein UNIX Socket ist von außen nicht über das Netzwerk oder das Internet erreichbar. Die Zugriffsrechte werden stattdessen über strikte Dateisystem-Berechtigungen (File Permissions) des Linux-Betriebssystems geregelt. Eine externe Attacke oder ein unbefugter Zugriff auf den Redis-Port ist bei dieser Architektur technisch ausgeschlossen.