Heim >PHP-Framework >Laravel >Laravel-Abfrage-Cache
Laravel ist ein beliebtes PHP-Webframework, das häufig in der Webentwicklung verwendet wird. Mit dem Abfrage-Builder können Sie auf elegante Weise Datenbankabfragen, Repository-Schemata und Stile erstellen. Allerdings können die Abfragen von Laravel ORM manchmal sehr langsam sein, was sich auf die Leistung Ihrer Anwendung auswirken kann. Eine Möglichkeit, dieses Problem zu lösen, besteht darin, den Abfragecache von Laravel zu verwenden. In diesem Artikel stellen wir das Konzept des Laravel-Abfragecaches und seine Verwendung in Laravel vor.
Was ist Abfrage-Cache?
Abfrage-Cache ist eine Caching-Technologie, mit der die Ausführungszeit von SQL-Abfragen verkürzt werden kann. Im Abfrage-Cache werden die Ergebnisse bei der ersten Ausführung einer Abfrage zwischengespeichert, sodass bei einer späteren Wiederholung der Abfrage die Ergebnisse direkt aus dem Cache abgerufen werden können, ohne dass die Abfrage erneut ausgeführt werden muss. Dies kann die Ausführungszeit von Abfragen erheblich verkürzen und dadurch die Anwendungsleistung verbessern.
In Laravel verwendet der Abfrage-Cache einen Cache-Treiber zum Speichern von Abfrageergebnissen. Sie können einen beliebigen Cache-Treiber wie Memcached, Redis oder File Cache usw. auswählen. Laravel bietet außerdem eine einfache API, mit der Sie Cache-Treiber problemlos verwenden können.
Laravel-Abfrage-Cache-Syntax
In Laravel kann das Abfrage-Caching mit der Methode „cache()“ implementiert werden. Das Folgende ist die grundlegende Syntax für die Verwendung des Abfragecaches:
$users = DB::table('users')
->where('name', 'John') ->cache(10) // 缓存10分钟 ->get();
Im obigen Beispiel verwenden wir zunächst die Methode DB::table(), um die Datenbanktabelle anzugeben Abfrage. Dann verwenden wir die Methode where(), um Einschränkungen hinzuzufügen, und schließlich die Methode get(), um die Abfrage auszuführen. Gleichzeitig verwenden wir die Methode „cache()“, um das Abfrage-Caching zu aktivieren, das einen Zeitparameter zur Angabe der Cache-Zeit akzeptiert.
So konfigurieren Sie den Abfrage-Cache
Bevor Sie den Abfrage-Cache verwenden, müssen Sie zuerst den Cache-Treiber konfigurieren. Laravel unterstützt eine Vielzahl von Cache-Treibern, darunter Datei-Cache, Memcached-Cache, Redis-Cache usw. Sie können den passenden Cache-Treiber entsprechend Ihren Anforderungen auswählen. In diesem Artikel verwenden wir zur Demonstration das Datei-Caching.
Um das Datei-Caching zu konfigurieren, öffnen Sie die Datei config/cache.php und Sie sehen Folgendes:
return [
/* |-------------------------------------------------------------------------- | Default Cache Store |-------------------------------------------------------------------------- | | This option controls the default cache "store" that gets used while | using this caching library. This connection is used when another is | not explicitly specified when executing a given caching function. | | Supported: "apc", "array", "database", "file", "memcached", "redis", "dynamodb" | */ 'default' => env('CACHE_DRIVER', 'file'), /* |-------------------------------------------------------------------------- | Cache Stores |-------------------------------------------------------------------------- | | Here you may define all of the cache "stores" for your application as | well as their drivers. You may even define multiple stores for the | same driver to group types of items stored in your caches. | */ 'stores' => [ 'apc' => [ 'driver' => 'apc', ], 'array' => [ 'driver' => 'array', ], 'database' => [ 'driver' => 'database', 'table' => 'cache', 'connection' => null, ], 'file' => [ 'driver' => 'file', 'path' => storage_path('framework/cache/data'), ], 'memcached' => [ 'driver' => 'memcached', 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), 'sasl' => [ env('MEMCACHED_USERNAME'), env('MEMCACHED_PASSWORD'), ], 'options' => [ // Memcached::OPT_CONNECT_TIMEOUT => 2000, ], 'servers' => [ [ 'host' => env('MEMCACHED_HOST', '127.0.0.1'), 'port' => env('MEMCACHED_PORT', 11211), 'weight' => env('MEMCACHED_WEIGHT', 100), ], ], ], 'redis' => [ 'driver' => 'redis', 'connection' => 'cache', ], ], /* |-------------------------------------------------------------------------- | Cache Key Prefix |-------------------------------------------------------------------------- | | When utilizing a RAM based store such as APC or Memcached, there might | be other applications utilizing the same cache. So, we'll specify a | value to get prefixed to all our keys so we can avoid collisions. | */ 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
];
In der obigen Konfigurationsdatei können Sie sehen, dass „Laravel mehrere Teile davon unterstützt.“ Caching-Treiber. Der „Datei“-Treiber verwendet das Dateisystem zum Speichern des Caches. Sie können den Wert der Option „Pfad“ ändern, um das Verzeichnis anzugeben, in dem der Cache gespeichert werden soll. Standardmäßig werden alle Caches im Verzeichnis storage/framework/cache/data gespeichert.
Hinweise nach der Verwendung des Abfragecaches
Bei der Verwendung des Abfragecaches sind mehrere Dinge zu beachten. Erstens ist der Abfragecache nur für Abfragen nützlich, die nach der Ausführung der Abfrage Ergebnisse zurückgeben. Wenn Sie Abfragen ausführen, die die Datenbank ändern, z. B. INSERT-, UPDATE- und DELETE-Abfragen, funktioniert der Abfragecache nicht. Zweitens ist der Abfragecache nur für reguläre Abfragen nützlich. Das Abfrage-Caching funktioniert nicht, wenn Ihre Abfrage zufällige Elemente wie Zeitstempel oder GUIDs enthält. Schließlich sollte das Abfrage-Caching nur verwendet werden, wenn sich Abfrageergebnisse selten ändern. Wenn sich Ihre Abfrageergebnisse häufig ändern, kann die Verwendung des Abfragecaches zu falschen Ergebnissen führen.
Fazit
Der Laravel-Abfragecache ist ein leistungsstarkes Tool zur Verkürzung der Ausführungszeit von SQL-Abfragen. Leistungsprobleme sind bei der Entwicklung umfangreicher Webanwendungen immer ein Problem. Durch die Verwendung des Laravel-Abfragecaches können Sie die Leistung Ihrer Anwendung erheblich verbessern und schnellere Antwortzeiten bereitstellen. Beachten Sie bei der Implementierung des Abfrage-Cachings bitte die von uns genannten Punkte und Überlegungen und wählen Sie den geeigneten Cache-Treiber entsprechend Ihren Anforderungen aus.
Das obige ist der detaillierte Inhalt vonLaravel-Abfrage-Cache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!