Redis Integration
Meistern Sie die integrierte Redis Unterstützung von GEMVC. Erfahren Sie, wie Sie RedisManager für Caching, Datenspeicherung, Pub/Sub Messaging und Performance Optimierung in Ihrer API Schicht verwenden.
What You'll Learn
Redis Setup
Redis während der Projekt Initialisierung installieren und konfigurieren
RedisManager API
Lernen Sie RedisManager Methoden und Operationen
API Schicht Caching
Redis auf API Ebene für beste Performance verwenden
Video Coming Soon...
Was ist die GEMVC Redis Integration?
GEMVC wird mit **integrierter Redis Unterstützung** durch die Klasse RedisManager geliefert. Redis ist ein leistungsstarker In Memory Datenstruktur Speicher, der für Caching, Sitzungsspeicherung, Pub/Sub Messaging und Performance Optimierung verwendet werden kann.
🎯 Best Practice:
**Verwenden Sie Redis auf API Ebene** (in den Klassen im Ordner /app/api/). Dies ist der empfohlene Ansatz zum Caching von API Antworten und zur Optimierung der Performance.
- **Singleton Muster** - RedisManager verwendet das Singleton Muster für die Verbindungsverwaltung
- **Auto Verbindung** - Stellt automatisch eine Verbindung her, wenn sie benötigt wird
- **Konfiguration über .env** - Alle Einstellungen werden über Umgebungsvariablen konfiguriert
- **Volle Redis API** - Unterstützt alle Redis Datenstrukturen und Operationen
- **JsonResponse Caching** - Spezielle Methoden zum Caching von API Antworten
Installation & Setup
Während der Projekt Initialisierung
Wenn Sie gemvc init ausführen, werden Sie gefragt, ob Sie Redis Unterstützung installieren möchten. **Stellen Sie sicher, dass Sie "Ja" wählen, wenn Sie Redis verwenden möchten!**
⚠️ Wichtig:
Wenn Sie Redis in Ihrem GEMVC Projekt verwenden möchten, **vergessen Sie nicht, Redis während des gemvc init CLI Befehls auszuwählen!** Dadurch wird die notwendige Redis PHP Erweiterung installiert und Ihr Projekt konfiguriert.
Was installiert wird:
- ✓ Redis PHP Erweiterung (phpredis)
- ✓ Redis Konfiguration in der
.envDatei - ✓ RedisManager Klasse ist einsatzbereit
Konfiguration
Umgebungsvariablen
Konfigurieren Sie die Redis Verbindungs Einstellungen in Ihrer .env Datei:
Konfigurations Optionen:
- •
REDIS_HOST- Redis Server Host (Standard: 127.0.0.1) - •
REDIS_PORT- Redis Server Port (Standard: 6379) - •
REDIS_PASSWORD- Redis Passwort (optional) - •
REDIS_DATABASE- Redis Datenbank Nummer (Standard: 0) - •
REDIS_PREFIX- Schlüssel Präfix für alle Schlüssel (Standard: gemvc:) - •
REDIS_PERSISTENT- Persistente Verbindung verwenden (Standard: false) - •
REDIS_TIMEOUT- Verbindungs Timeout in Sekunden (Standard: 0.0) - •
REDIS_READ_TIMEOUT- Lese Timeout in Sekunden (Standard: 0.0)
Erste Schritte mit RedisManager
Grundlegende Nutzung
RedisManager verwendet das Singleton Muster. Rufen Sie eine Instanz ab und beginnen Sie mit der Verwendung von Redis:
Wichtige Punkte:
- ✓
getInstance()gibt die Singleton Instanz zurück - ✓ Stellt automatisch eine Verbindung her, wenn Sie eine Methode aufrufen (kein manuelles
connect()erforderlich) - ✓ Die Verbindung wird über Anfragen hinweg wiederverwendet (effizient!)
- ✓ Alle Methoden geben sichere Standardwerte (null, false, leeres Array) zurück, wenn Redis nicht verfügbar ist
Verbindungsverwaltung
Manuelle Verbindungssteuerung
Obwohl RedisManager automatisch eine Verbindung herstellt, können Sie die Verbindung auch manuell steuern:
Verbindungsfunktionen:
- ✓ **Persistente Verbindungen** - Konfigurieren Sie über
REDIS_PERSISTENT - ✓ **Automatische Wiederverbindung** - Stellt automatisch eine Verbindung wieder her, wenn die Verbindung unterbrochen wird
- ✓ **Fehlerbehandlung** - Verwenden Sie
getError(), um nach Fehlern zu suchen - ✓ **Präfix Unterstützung** - Alle Schlüssel werden automatisch mit
REDIS_PREFIXvorangestellt
Grundlegende Schlüssel Wert Operationen
Set, Get, Delete
Grundlegende Redis Operationen zum Speichern und Abrufen von Daten:
TTL (Time To Live):
Verwenden Sie TTL, um Schlüssel automatisch ablaufen zu lassen. Dies ist perfekt für Caching! Legen Sie eine TTL in Sekunden fest, und Redis löscht den Schlüssel automatisch, wenn er abläuft.
API Schicht Caching (Best Practice)
API Antworten Cachen
**Best Practice:** Verwenden Sie Redis auf API Ebene, um API Antworten zu cachen. Dies verbessert die Performance drastisch, indem Datenbankabfragen und die Ausführung der Geschäftslogik vermieden werden.
🎯 Empfohlener Ansatz:
Verwenden Sie immer Redis Caching in den Klassen im Ordner /app/api/. Dies ist die Best Practice für die Performance Optimierung.
Hauptvorteile:
- ✓ **Schnellere Antworten** - Gecachte Antworten werden sofort zurückgegeben
- ✓ **Reduzierte Datenbanklast** - Weniger Abfragen an die Datenbank
- ✓ **Bessere Performance** - Insbesondere für häufig aufgerufene Daten
- ✓ **Automatischer Ablauf** - Cache läuft automatisch mit TTL ab
- ✓ **Einfache Ungültigkeitserklärung** - Cache Schlüssel löschen, wenn sich Daten ändern
Hash Operationen
Speichern von Objekten als Hashes
Redis Hashes sind perfekt zum Speichern von Objekten mit mehreren Feldern:
List Operationen
Warteschlangen und Listen
Redis Listen sind perfekt für Warteschlangen, Protokolle und geordnete Daten:
Set Operationen
Eindeutige Sammlungen
Redis Sets speichern eindeutige Werte – perfekt für Tags, Kategorien und eindeutige Sammlungen:
Sorted Sets
Geordnete Sammlungen mit Scores
Sorted Sets behalten die Reihenfolge nach Score bei – perfekt für Ranglisten, Rankings und Zeitreihen Daten:
Pub/Sub Messaging
Publish/Subscribe Muster
Redis Pub/Sub ermöglicht Echtzeit Messaging zwischen verschiedenen Teilen Ihrer Anwendung:
Anwendungsfälle:
- • **Cache Ungültigkeitserklärung** - Alle Instanzen benachrichtigen, um den Cache zu leeren
- • **Echtzeit Updates** - Updates an verbundene Clients pushen
- • **Event Broadcasting** - Events über Dienste hinweg senden
- • **Hintergrund Jobs** - Hintergrundverarbeitung auslösen
Pipeline & Transaktionen
Batch Operationen
Verwenden Sie Pipelines für Batch Operationen (schneller) oder Transaktionen für atomare Operationen:
Pipeline vs. Transaktion:
- • **Pipeline** - Schneller, keine Atomizitätsgarantie, für Batch Operationen verwenden
- • **Transaktion** - Langsamer, atomar (alles oder nichts), verwenden, wenn Konsistenz kritisch ist
Best Practices
🎯 Verwenden Sie Redis auf API Ebene
Verwenden Sie immer Redis Caching in den Klassen im Ordner /app/api/. Dies ist die empfohlene Best Practice für die Performance Optimierung.
💡 Cache Schlüssel Strategie
Verwenden Sie beschreibende, konsistente Cache Schlüssel:
💡 Angemessene TTL festlegen
Legen Sie immer TTL (Time To Live) für Cache Schlüssel fest. Dies verhindert veraltete Daten und bereinigt alte Cache Einträge automatisch.
💡 Cache bei Updates ungültig machen
Wenn sich Daten ändern (erstellen, aktualisieren, löschen), erklären Sie verwandte Cache Schlüssel für ungültig, um die Bereitstellung veralteter Daten zu verhindern.
💡 Cache Misses elegant handhaben
Behandeln Sie Cache Misses immer, indem Sie auf Datenbankabfragen zurückgreifen. Redis sollte die Performance verbessern, nicht die Funktionalität beeinträchtigen.
Wichtige Hinweise
-
**Installation:** Vergessen Sie nicht, Redis während des
gemvc initCLI Befehls auszuwählen! Dadurch wird die Redis PHP Erweiterung installiert und Ihr Projekt konfiguriert. -
**API Ebene:** Best Practice ist die Verwendung von Redis auf API Ebene (
/app/api/Ordner). Dies bietet die beste Performance Optimierung. -
**Auto Verbindung:** RedisManager stellt automatisch eine Verbindung her, wenn Sie eine Methode aufrufen. Sie müssen
connect()nicht manuell aufrufen. - 3311 **Sichere Standardwerte:** Alle Methoden geben sichere Standardwerte (null, false, leeres Array) zurück, wenn Redis nicht verfügbar ist, damit Ihre Anwendung nicht abstürzt.
-
**Schlüssel Präfix:** Alle Schlüssel werden automatisch mit
REDIS_PREFIXvorangestellt (Standard:gemvc:), um Konflikte zu vermeiden.
⚡ Redis Integration abgeschlossen!
Ausgezeichnet! Sie haben gelernt, wie Sie die integrierte Redis Unterstützung von GEMVC verwenden. Denken Sie daran: Verwenden Sie Redis auf API Ebene für beste Performance, und vergessen Sie nicht, Redis während gemvc init auszuwählen!