Projects [SHOW]
6. Redis
Einführung
Redis ist ein quelloffener, fortschrittlicher Key-Value-Store. Er wird oft als Datenstruktur-Server bezeichnet, da Schlüssel strings, hashes, lists, sets und sorted sets enthalten können.
Bevor Sie Redis mit Laravel verwenden können, müssen Sie das Paket predis/prepredis über den Composer installieren:
composer require predis/predis
Alternativ können Sie die PHP-Erweiterung PhpRedis über PECL installieren. Die Erweiterung ist aufwendiger zu installieren, kann aber bei Anwendungen, die Redis stark beanspruchen, eine bessere Performance erzielen.
Configuration
Die Redis-Konfiguration für Ihre Anwendung finden Sie in der Konfigurationsdatei config/database.php. Innerhalb dieser Datei sehen Sie ein redis-Array mit den von Ihrer Anwendung verwendeten Redis-Servern:
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
],
'cache' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 1),
],
],
Die Standard-Serverkonfiguration sollte für die Entwicklung ausreichen. Es steht Ihnen jedoch frei dieses Array basierend auf Ihrer Umgebung zu modifizieren. Jeder Redis Server, der in Ihrer Konfigurationsdatei definiert ist, muss einen Namen, einen Host und einen Port haben.
Configuring Clusters
Wenn Ihre Anwendung einen Cluster von Redis Servern nutzt, sollten Sie diese Cluster innerhalb eines clusters-Keys Ihrer Redis Konfiguration definieren:
'redis' => [
'client' => 'predis',
'clusters' => [
'default' => [
[
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
],
],
Standardmäßig führen Cluster ein clientseitiges Sharing über Ihre Knoten durch, wodurch Sie Knoten zusammenlegen und eine große Menge an verfügbarem RAM erzeugen können. Beachten Sie jedoch, dass das clientseitige Sharding kein Failover beherrscht und daher in erster Linie für zwischengespeicherte Daten geeignet ist, die von einem anderen primären Datenspeicher verfügbar sind. Wenn Sie natives Redis-Clustering verwenden möchten, sollten Sie dies im options-Key Ihrer Redis-Konfiguration angeben:
'redis' => [
'client' => 'predis',
'options' => [
'cluster' => 'redis',
],
'clusters' => [
// ...
],
],
Predis
Zusätzlich zu den standardmäßigen host-, port-, database- und password-Server-Konfigurationsoptionen unterstützt Predis zusätzliche Verbindungsparameter, die für jeden Ihrer Redis-Server definiert werden können. Um diese zusätzlichen Konfigurationsoptionen zu nutzen, fügen Sie diese in der Konfigurationsdatei config/database.php zu Ihrer Redis Server Konfiguration hinzu:
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
'read_write_timeout' => 60,
],
PhpRedis
Um die PhpRedis-Erweiterung zu nutzen, sollten Sie die client-Option Ihrer Redis-Konfiguration auf phpredis ändern. Diese Option finden Sie in Ihrer Konfigurationsdatei config/database.php:
'redis' => [
'client' => 'predis',
// Rest of Redis configuration...
],
Zusätzlich zu den Standard-Konfigurationsoptionen für host-, port-, database- und password-Server unterstützt PhpRedis die folgenden zusätzlichen Verbindungsparameter: persistent, prefix, read_timeout und timeout. Sie können jede dieser Optionen in der Konfigurationsdatei config/database.php zu Ihrer Redis Server Konfiguration hinzufügen:
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
'read_timeout' => 60,
],