Predis – flexibler Redis-Client für PHP
\n\nRedis ist ein Hochleistungs-Datenspeicher vom Typ „Schlüssel-Wert", der häufig für Caching, Sitzungen, Warteschlangen und Echtzeitanwendungen verwendet wird. Für die Arbeit mit Redis aus PHP heraus gibt es mehrere Bibliotheken, und eine der beliebtesten ist Predis. Es handelt sich um eine reine PHP-Implementierung des Clients, die keine Installation zusätzlicher Erweiterungen erfordert (im Gegensatz zu phpredis). Predis unterstützt alle grundlegenden Redis-Befehle, Clustering, Replikation, Pub/Sub und die Arbeit mit Transaktionen.
\n\nInstallation von Predis über Composer
\n\nDie Installation von Predis erfolgt auf dem Standardweg über Composer. Stellen Sie sicher, dass Composer in Ihrem Projekt installiert ist, und führen Sie den Befehl aus:
\n\ncomposer require predis/predis\n\nNach der Installation erscheint die Abhängigkeit in der Datei composer.json und die Bibliothek ist im Ordner vendor verfügbar.
Verbindung zum Redis-Server
\n\nErstellen Sie für den Einstieg eine Instanz des Predis-Clients. Standardmäßig verbindet er sich mit 127.0.0.1:6379, Sie können aber auch eigene Parameter angeben.
<?php\nrequire 'vendor/autoload.php';\n\nuse Predis\\Client;\n\n// Verbindung mit Standardparametern\n$client = new Client();\n\n// Oder mit expliziter Angabe von Host und Port\n$client = new Client([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n]);\n\n// Wenn ein Passwort erforderlich ist\n$client = new Client([\n 'host' => 'localhost',\n 'port' => 6379,\n 'password' => 'my_secret_password',\n]);\n?>\n\nWenn Redis auf einem entfernten Server läuft oder einen UNIX-Socket verwendet, ändern Sie einfach die entsprechenden Parameter.
\n\nGrundlegende Datenoperationen
\n\nPredis unterstützt alle standardmäßigen Redis-Datentypen: Strings, Hashes, Listen, Mengen und sortierte Mengen. Sehen wir uns einige grundlegende Beispiele an.
\n\nArbeiten mit Strings
\n\n<?php\n// Wert setzen\n$client->set('user:100:name', 'Ivan Petrov');\n\n// Wert abrufen\n$name = $client->get('user:100:name');\necho $name; // Ivan Petrov\n\n// Existenz eines Schlüssels prüfen\nif ($client->exists('user:100:name')) {\n echo 'Schlüssel existiert';\n}\n\n// Schlüssel löschen\n$client->del(['user:100:name']);\n?>\n\nArbeiten mit Hashes
\n\nHashes eignen sich gut zum Speichern von Objekten – zum Beispiel von Benutzerdaten.
\n\n<?php\n// Hash-Felder setzen\n$client->hmset('user:100', [\n 'name' => 'Anna Smirnova',\n 'email' => 'anna@example.com',\n 'age' => 28,\n]);\n\n// Ein Feld abrufen\n$email = $client->hget('user:100', 'email');\n\n// Alle Felder abrufen\n$userData = $client->hgetall('user:100');\nprint_r($userData);\n\n// Numerisches Feld erhöhen\n$client->hincrby('user:100', 'age', 1);\n?>\n\nArbeiten mit Listen
\n\nRedis-Listen eignen sich ideal für Warteschlangen und Protokolle.
\n\n<?php\n// Elemente am Anfang der Liste hinzufügen (Stapel)\n$client->lpush('tasks', 'task1', 'task2', 'task3');\n\n// Am Ende der Liste hinzufügen (Warteschlange)\n$client->rpush('tasks', 'task4');\n\n// Alle Elemente der Liste abrufen\n$allTasks = $client->lrange('tasks', 0, -1);\nprint_r($allTasks);\n\n// Erstes Element entnehmen\n$first = $client->lpop('tasks');\necho $first; // task3\n?>\n\nFestlegen der Lebensdauer eines Schlüssels (TTL)
\n\nEine der leistungsstarken Funktionen von Redis ist das automatische Löschen von Schlüsseln nach einer bestimmten Zeit. Dies wird häufig für Caching verwendet.
\n\n<?php\n// Schlüssel mit TTL von 60 Sekunden setzen\n$client->setex('cache:page', 60, 'HTML-Inhalt der Seite');\n\n// Oder für einen bereits vorhandenen Schlüssel\n$client->expire('cache:page', 120);\n\n// Verbleibende Lebensdauer prüfen\n$ttl = $client->ttl('cache:page');\necho "Noch $ttl Sekunden übrig";\n?>\n\nArbeiten mit Transaktionen
\n\nPredis unterstützt Multi-Befehle (Trans
Auch in der Bibliothek
CreateML für Swift: Komplettleitfaden mit Beispielen
PHP-Aufgabenplaner: Bibliothek cron‑expression für flexible Zeitpläne
Arbeiten mit Daten in Swift (iOS/macOS): Bibliotheken und Werkzeuge
TCPDF für PHP: Vollständige Anleitung mit Beispielen
Nodemailer für JavaScript (Node.js): Komplettguide mit Beispielen