Heim  >  Artikel  >  PHP-Framework  >  Laravel-Entwicklung: Wie verwende ich Laravel Redis, um Daten-Caching zu implementieren?

Laravel-Entwicklung: Wie verwende ich Laravel Redis, um Daten-Caching zu implementieren?

WBOY
WBOYOriginal
2023-06-13 17:45:391579Durchsuche

Laravel ist ein sehr beliebtes PHP-Framework, das in der Webentwicklung weit verbreitet ist. Das Laravel-Framework bietet viele praktische APIs und Komponenten, einschließlich Daten-Caching. Redis ist ein beliebter Open-Source-In-Memory-Datenstrukturspeicher, der die Datenabfrage- und Leseeffizienz sehr effektiv verbessern kann. In diesem Artikel wird erläutert, wie Sie mit Laravel Redis Daten-Caching in Laravel implementieren und so die Leistung von Webanwendungen verbessern.

Installation

Zuerst müssen wir Laravel Redis installieren. Es kann mit Composer installiert werden, indem Sie den folgenden Befehl ausführen:

composer require predis/predis

Implementieren Sie den Laravel Redis-Cache-Treiber mit dem Paket predis/predis. Nach Abschluss der Installation müssen Sie die Variablen REDIS_HOST, REDIS_PASSWORD und REDIS_PORT in der Datei .env festlegen. .env文件中设置REDIS_HOST,REDIS_PASSWORD和REDIS_PORT变量。

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

配置Laravel Redis

修改config/cache.php文件中的配置,将'default'选项更改为'redis'使用Redis作为缓存驱动。另外,在'redis'数组中设置Redis连接信息。

'default' => env('CACHE_DRIVER', 'redis'),

'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),
    ],
],

使用Laravel Redis

一旦设置好了Laravel Redis的驱动程序和配置,我们可以开始使用它了。下面是通过Laravel Redis进行数据缓存的3种方法:

普通缓存

使用Laravel Redis的最简单方法是使用Cache门面的基本方法。Laravel框架提供了许多高级功能,但这里强调最基本的缓存处理方法。可以通过以下代码进行缓存:

use IlluminateSupportFacadesCache;

$value = Cache::remember('key', $minutes, function () {
    return DB::table('users')->get();
});

上述代码将结果从"users"表中缓存到Redis中。在此之后,调用该密钥时将重复使用Redis中的缓存副本,而不是从源数据库重新生成结果。Cache::remember方法的第二个参数是缓存有效期(以分钟为单位),或者可以使用Cache::forever方法将数据永久保存到缓存中。

标签缓存

另一种使用Laravel Redis的高级缓存方法是使用标签。标签使您可以创建和捕获多个缓存条目,然后使用标签清除所有这些条目。标签缓存提供了对缓存生命周期的更好控制。

use IlluminateSupportFacadesCache;

Cache::tags(['people', 'artists'])->put('John', $john, $minutes);
Cache::tags(['people', 'authors'])->put('Jane', $jane, $minutes);

上述代码将John保存在两个标签peopleartists中,并将Jane保存在两个标签peopleauthors中。现在可以使用特定标签的flush方法,仅清除该标签下的所有缓存项。

Cache::tags(['people'])->flush();

上述代码清除所有带有people标签的缓存并将它们从Redis中删除。

辅助函数

Laravel Redis还提供了一些功能较少但使用起来更加方便的辅助函数。以下是其中一些:

  • cache()->put('key', 'value', $minutes) 缓存输入值一定时间。
  • cache()->get('key') 检索已缓存的值。
  • cache()->remember('key', $minutes, function() { return 'value'; }) 检索任何缓存项,失败时返回新值。
  • cache()->rememberForever()rrreee
  • Konfigurieren Sie Laravel Redis

Ändern Sie die Konfiguration in der Datei config/cache.php und ändern Sie die Option „default“ in „redis“, um Redis als Cache-Treiber zu verwenden. Legen Sie außerdem die Redis-Verbindungsinformationen im Array „redis“ fest.

rrreee

Verwendung von Laravel Redis

🎜Sobald der Laravel Redis-Treiber und die Konfiguration eingerichtet sind, können wir mit der Verwendung beginnen. Hier sind drei Möglichkeiten, Daten über Laravel Redis zwischenzuspeichern: 🎜

Normaler Cache

🎜Der einfachste Weg, Laravel Redis zu verwenden, ist die Verwendung der grundlegenden Methode der Cache-Fassade. Das Laravel-Framework bietet viele erweiterte Funktionen, aber hier konzentrieren wir uns auf die grundlegendsten Caching-Methoden. Das Caching kann über den folgenden Code erfolgen: 🎜rrreee🎜Der obige Code speichert die Ergebnisse aus der Tabelle „Benutzer“ in Redis zwischen. Danach wird die zwischengespeicherte Kopie in Redis beim Aufruf des Schlüssels wiederverwendet, anstatt die Ergebnisse aus der Quelldatenbank neu zu generieren. Der zweite Parameter der Methode Cache::remember ist die Cache-Gültigkeitsdauer in Minuten. Alternativ kann die Methode Cache::forever verwendet werden, um die Daten dauerhaft im Cache zu speichern . 🎜

Tag-Caching

🎜Eine weitere erweiterte Caching-Methode mit Laravel Redis ist die Verwendung von Tags. Mit Tags können Sie mehrere Cache-Einträge erstellen und erfassen und diese dann alle mithilfe von Tags löschen. Tag-Caching bietet eine bessere Kontrolle über den Cache-Lebenszyklus. 🎜rrreee🎜Der obige Code speichert John in zwei Tags people und artists und speichert Jane in den beiden markiert Personen und Autoren. Es ist jetzt möglich, die Methode flush eines bestimmten Tags zu verwenden, um nur alle zwischengespeicherten Elemente unter diesem Tag zu löschen. 🎜rrreee🎜Der obige Code löscht alle Caches mit people-Tags und löscht sie aus Redis. 🎜

Hilfsfunktionen

🎜Laravel Redis bietet auch einige Hilfsfunktionen, die weniger Funktionen haben, aber bequemer zu verwenden sind. Hier sind einige davon: 🎜
  • cache()->put('key', 'value', $minutes) Den Eingabewert für eine bestimmte Zeit zwischenspeichern. 🎜
  • cache()->get('key') Einen zwischengespeicherten Wert abrufen. 🎜
  • cache()->remember('key', $minutes, function() { return 'value'; }) Ruft alle zwischengespeicherten Elemente ab und gibt bei einem Fehler einen neuen Wert zurück. 🎜
  • cache()->rememberForever() Cache-Elemente immer merken. 🎜🎜🎜Fazit🎜🎜Laravel Redis bietet einige einfache und benutzerfreundliche Methoden zum Zwischenspeichern von Daten und zum effizienten Lesen und Abfragen von Daten in Webanwendungen. Das Laravel-Framework basiert fast vollständig auf Composer, was die Arbeit mit Laravel Redis erleichtert. Der Vorteil der Verwendung von Laravel Redis Caching bei großen Webanwendungen besteht darin, dass es die Zeitverschwendung durch langsamere Datenbanken reduziert und die Abfragegeschwindigkeit für dynamische Daten erhöht. 🎜

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie verwende ich Laravel Redis, um Daten-Caching zu implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn