Heim  >  Artikel  >  PHP-Framework  >  Besprechen Sie, wie Sie den Cache in Laravel aktualisieren

Besprechen Sie, wie Sie den Cache in Laravel aktualisieren

PHPz
PHPzOriginal
2023-04-11 15:07:38904Durchsuche

Laravel ist ein sehr beliebtes PHP-Framework, das Caching nutzt, um die Anwendungsleistung und Reaktionsfähigkeit zu verbessern. Caching kann die Belastung der Datenbank und anderer externer Ressourcen effektiv reduzieren und dadurch die Reaktionsgeschwindigkeit der Anwendung verbessern. Wenn wir jedoch die Daten ändern, muss der Cache aktualisiert werden, da wir sonst nicht die neuesten Daten erhalten können. In diesem Artikel besprechen wir, wie man den Cache in Laravel aktualisiert.

  1. Laravel-Caching verstehen

In Laravel können wir verschiedene Caching-Methoden verwenden, z. B. Datei-Caching, Datenbank-Caching, Redis-Caching usw. Diese Caching-Methoden haben alle unterschiedliche Merkmale und Funktionen, folgen aber alle den gleichen grundlegenden Caching-Prinzipien. In Laravel können wir die Fassadenklasse Cache verwenden, um auf den Cache zuzugreifen.

In Laravel besteht das Caching normalerweise aus zwei Schritten: Lese-Caching und Schreib-Caching. Wenn wir aus dem Cache lesen, sucht Laravel nach Daten im Cache. Wenn die Daten vorhanden sind, werden die Daten im Cache direkt zurückgegeben, andernfalls werden die Daten von der Datenquelle abgerufen und im Cache gespeichert. Wenn wir in den Cache schreiben, speichert Laravel die Daten im Cache. Wenn die Daten bereits im Cache vorhanden sind, werden die Originaldaten überschrieben. Andernfalls erstellt Laravel einen neuen Cache-Datensatz.

  1. So aktualisieren Sie den Cache

In Laravel können wir die von der Cache-Fassadenklasse bereitgestellte put()-Methode verwenden, um Cache-Daten zu schreiben. Wir müssen die Daten nur als zweiten Parameter an die put()-Methode übergeben. Wenn wir die zwischengespeicherten Daten aktualisieren müssen, können wir mit der put()-Methode die ursprünglich zwischengespeicherten Daten überschreiben, um sicherzustellen, dass die Daten im Cache die neuesten Daten sind.

Das Folgende ist ein Beispielcode:

$user = User::find(1);
Cache::put('user:1', $user, 60);

Der obige Code speichert das $user-Objekt im Cache mit dem Schlüssel „user:1“ und legt die Cache-Zeit auf 60 Sekunden fest. Wenn wir die zwischengespeicherten Daten aktualisieren müssen, können wir die Methode put() erneut verwenden, um die zuvor zwischengespeicherten Daten zu überschreiben.

$user->name = 'New Name';
Cache::put('user:1', $user, 60);

Der obige Code aktualisiert das Namensattribut des $user-Objekts und schreibt das aktualisierte $user-Objekt in den Cache, um die zuvor zwischengespeicherten Daten zu überschreiben. An diesem Punkt können wir die neuesten $user-Objektdaten aus dem Cache abrufen.

  1. Automatische Cache-Aktualisierung

In praktischen Anwendungen müssen wir möglicherweise die entsprechenden Cache-Daten automatisch aktualisieren, wenn Daten in der Datenbank aktualisiert werden. Laravel bietet eine praktische Möglichkeit, den Cache im Datenbankmodell mithilfe von Cache-Tags zu verwalten.

Cache-Tags sind eine Methode zum Kombinieren mehrerer zwischengespeicherter Daten und können verwendet werden, um mehrere verwandte Daten gleichzeitig im Datenmodell zwischenzuspeichern. Wenn wir Modelldaten aktualisieren, können wir Cache-Tags verwenden, um alle zwischengespeicherten Daten zu diesem Modell zu aktualisieren.

Hier ist ein Beispielcode:

class User extends Model
{
    protected $fillable = ['name', 'email'];
    protected $cacheKey = 'users';

    public function getByID($id)
    {
        $cacheKey = $this->cacheKey . '.' . $id;
        return Cache::tags([$this->cacheKey])->remember($cacheKey, 60, function() use($id) {
            return User::find($id);
        });
    }

    protected static function boot()
    {
        parent::boot();

        static::saved(function($user) {
            Cache::tags($user->cacheKey)->flush();
        });

        static::deleted(function($user) {
            Cache::tags($user->cacheKey)->flush();
        });
    }
}

Der obige Code verwendet Cache-Tags, um zwischengespeicherte Daten für Benutzermodelle zu verwalten. Es definiert ein $cacheKey-Attribut, das zum Festlegen des Präfixes des Cache-Tags verwendet wird. Außerdem wird die Methode getByID() überschrieben, die Cache-Tags verwendet, um Benutzerdaten für eine angegebene ID abzurufen. Wenn Benutzerdaten erstellt, aktualisiert oder gelöscht werden, löscht Laravel automatisch die zwischengespeicherten Daten des Benutzers, um sicherzustellen, dass die zwischengespeicherten Daten mit den Datenbankdaten synchronisiert werden.

Zusammenfassung

Das Aktualisieren des Caches in Laravel ist eine sehr wichtige Aufgabe, die die Leistung und Reaktionsfähigkeit unserer Anwendung verbessert. Wir können die von der Fassadenklasse Cache bereitgestellte Methode put() verwenden, um Cache-Daten zu schreiben oder zu überschreiben. Wenn Datenbankdaten aktualisiert werden, können wir Cache-Tags verwenden, um die entsprechenden Cache-Daten automatisch zu aktualisieren. Ich hoffe, dieser Artikel kann Ihnen helfen und Ihnen ein besseres Verständnis der Cache-Verwaltung in Laravel vermitteln.

Das obige ist der detaillierte Inhalt vonBesprechen Sie, wie Sie den Cache in Laravel aktualisieren. 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