{"id":43416,"date":"2021-09-10T12:23:16","date_gmt":"2021-09-10T10:23:16","guid":{"rendered":"https:\/\/kinsta.com\/?p=98920"},"modified":"2023-08-29T06:27:27","modified_gmt":"2023-08-29T05:27:27","slug":"laravel-caching","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/","title":{"rendered":"Alles was du \u00fcber Laravel Caching wissen musst"},"content":{"rendered":"<p>Caching ist essentiell, um eine hohe Performance und Skalierbarkeit zu erreichen. Die Implementierung der richtigen <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-cache\/\">Caching-Strategie<\/a> bereits in der Entwicklungsphase ist entscheidend, um verz\u00f6gerte APIs und tr\u00e4ge <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-caching-plugins\/\">Seitenladezeiten<\/a> zu vermeiden. Laravel ist eines der beliebtesten PHP-Frameworks, daher ist die Implementierung der optimalen Laravel-Caching-Strategie unabdingbar f\u00fcr ein besseres Nutzererlebnis und einen gr\u00f6\u00dferen Gesch\u00e4ftserfolg.<\/p>\n<p>In diesem Artikel werden wir Strategien f\u00fcr die Implementierung und Manipulation von Caching in Laravel erkunden. Du lernst, wie Laravel Caching funktioniert, verschiedene Laravel Caching Abfragen und wie du Caching in Laravel Apps handhaben kannst.<\/p>\n<p>Du wirst mehr von diesem Artikel haben, wenn du bereits ein Grundwissen \u00fcber die folgenden Punkte hast:<\/p>\n<ul>\n<li>Gute Kenntnisse in der <a href=\"https:\/\/kinsta.com\/de\/blog\/webentwicklung-tools\/\">Webentwicklung<\/a><\/li>\n<li>Grundlegendes <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-laravel\/\">Verst\u00e4ndnis von Laravel<\/a><\/li>\n<li>Bauen von <a href=\"https:\/\/masteringbackend.com\/posts\/laravel-framework-the-ultimate-guide\">APIs mit Laravel<\/a><\/li>\n<li>Grundlegendes <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/caching\/seiten-caching\/#site-cache-expiration\">Verst\u00e4ndnis von Caching<\/a><\/li>\n<\/ul>\n<p>Lass uns eintauchen!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h3>Schau dir unsere <a href=\"https:\/\/www.youtube.com\/watch?v=6eJMRMgn6mI\">Videoanleitung<\/a> zu Laravel Cache an<\/h3>\n<kinsta-video src=\"https:\/\/www.youtube.com\/watch?v=6eJMRMgn6mI\"><\/kinsta-video>\n<h2>Warum ist Caching wichtig?<\/h2>\n<p>Mit dem j\u00fcngsten Boom im Internetgesch\u00e4ft haben verschiedene Unternehmen Statistiken, die zeigen, wie sich die Ladezeit einer Webseite und eine niedrige Performance ohne Caching stark auf SEO, Nutzerengagement und Conversion-Raten auswirken k\u00f6nnen. Und das beginnt mit einer exzellenten Caching-Strategie.<\/p>\n<p>Eine <a href=\"https:\/\/kinsta.com\/de\/lernen\/website-geschwindigkeit\/#slow-how-slow\">Online-Studie fand heraus<\/a>: &#8222;1 Sekunde Ladeverz\u00f6gerung w\u00fcrde Amazon 1,6 Milliarden Dollar Umsatz pro Jahr kosten.&#8220;<\/p>\n<p>Eine andere <a href=\"https:\/\/www.thinkwithgoogle.com\/future-of-marketing\/digital-transformation\/the-google-gospel-of-speed-urs-hoelzle\/\">Google-Studie berichtet<\/a>: &#8222;Unsere Forschung zeigt, dass, wenn die Suchergebnisse auch nur um einen Bruchteil einer Sekunde verlangsamt werden, die Leute weniger suchen (ernsthaft: Eine <strong>Verz\u00f6gerung von 400ms<\/strong> f\u00fchrt zu einem R\u00fcckgang des Suchvolumens um <strong>0,44 Prozent<\/strong>). Und diese Ungeduld ist nicht nur auf die Suche beschr\u00e4nkt: Vier von f\u00fcnf Internetnutzern klicken weg, wenn ein Video beim Laden stockt.&#8220;<\/p>\n<p>Eine kleine Tr\u00e4gheit bei der Ladezeit deiner Webseite kann sich massiv auf die Erfahrung deiner Nutzer auswirken und zu einem gro\u00dfen Verlust f\u00fchren.<\/p>\n<h2>Was ist Laravel Caching?<\/h2>\n<p>Laravel bietet eine robuste und einfach zu bedienende Implementierung von Caching und verschiedenen Caching Backends. Mit Laravel Cache kannst du effizient und effektiv zwischen vielen Caching-Engines wechseln, ohne Code zu schreiben.<\/p>\n<p>Die Konfiguration des Laravel-Caches findest du im Ordner <strong><code>config\/cache.php<\/code><\/strong>, wobei du wahrscheinlich nur die <strong>.env<\/strong>-Datei ben\u00f6tigst, um zwischen verschiedenen Cache-Backends zu wechseln.<\/p>\n<p>Laravel Cache bietet auch viele praktische Methoden, die wir nutzen k\u00f6nnen, um verschiedene Caching-Strategien zu implementieren.<\/p>\n\n<h3>Laravel Cache-Treiber und Vergleiche<\/h3>\n<p>Laravel Cache bietet gro\u00dfartige Caching Backends und Treiber. Abh\u00e4ngig von deinem Anwendungsfall kannst du zwischen ihnen wechseln, um die Performance und Ladezeit deiner Anwendung zu verbessern.<\/p>\n<p>Abgesehen davon bietet Laravel Cache auch eine nahtlose M\u00f6glichkeit, ein benutzerdefiniertes Backend zu erstellen und es mit Laravel Cache zu verwenden, aber nur, wenn die Liste unten nicht zu deinem Anwendungsfall passt.<\/p>\n<p>Wir werden als n\u00e4chstes \u00fcber die Liste aller Backends sprechen, die von Laravel Cache bereitgestellt werden.<\/p>\n<h4>1. Datei<\/h4>\n<p>Der <strong>File<\/strong>-Treiber ist das Standard-Backend, das vom Laravel-Cache verwendet wird, wenn kein Treiber in der <strong>.env<\/strong>-Datei angegeben ist.<\/p>\n<p>Das <strong>File<\/strong>-Backend wurde entwickelt, um die gecachten Daten in einer verschl\u00fcsselten Datei zu speichern, die sich unter <strong><code>storage\/framework\/<\/code><\/strong> befindet. Laravel erstellt eine verschl\u00fcsselte Datei mit den Daten und dem Cache-Schl\u00fcssel, wenn neue Daten gecached werden. Das gleiche passiert, wenn der Benutzer versucht, den Inhalt abzurufen. Laravel Cache durchsucht den Ordner nach dem angegebenen Schl\u00fcssel und gibt, wenn gefunden, den Inhalt zur\u00fcck.<\/p>\n<p>Obwohl das <strong>Dateibackend<\/strong> einwandfrei funktioniert und Zeit beim Installieren und Konfigurieren von externen Treibern spart, kann es auch <a href=\"https:\/\/kinsta.com\/developer-roles\/development-at-kinsta\/\">perfekt f\u00fcr die Entwicklung<\/a> sein. Es ist schneller als der direkte Zugriff auf die Daten vom Datenbankserver.<\/p>\n<p>Um den <strong>File<\/strong>-Treiber zu nutzen, f\u00fcge den folgenden Code zu deiner .<strong>env<\/strong> Datei hinzu:<\/p>\n<pre><code class=\"language-markdown\">CACHE_DRIVER=file<\/code><\/pre>\n<h4>2. Array<\/h4>\n<p>Der <strong>Array<\/strong>-Treiber ist ein perfektes Caching-Backend f\u00fcr die Durchf\u00fchrung von automatisierten Tests und l\u00e4sst sich einfach mit Github Actions, Jenkins, etc. konfigurieren.<\/p>\n<p>Das <strong>Array<\/strong> Backend speichert die gecachten Daten in einem Array in PHP und erfordert keine Installation oder Konfiguration von Treibern. Es funktioniert perfekt f\u00fcr automatisierte Tests und ist ein bisschen schneller als das File Cache Backend.<\/p>\n<p>Um den <strong>Array<\/strong>-Treiber zu verwenden, f\u00fcge den folgenden Code zu deiner <strong>.env<\/strong>-Datei hinzu:<\/p>\n<pre><code class=\"language-markdown\">CACHE_DRIVER=array<\/code><\/pre>\n<h4>3. Datenbank<\/h4>\n<p>Wenn du den <strong>Datenbanktreiber<\/strong> verwendest, werden die Daten f\u00fcr den aktuellen PHP-Prozess im Speicher gehalten. Daher musst du eine Datenbanktabelle erstellen, um die gecachten Daten zu speichern. Zus\u00e4tzlich verbessert das <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-datenbank\/\">Datenbank<\/a>-Caching die Skalierbarkeit, indem es die Arbeitslast der Abfragen vom Backend auf mehrere Frontends verteilt.<\/p>\n<p>Du kannst diesen Artisan-Befehl &#8211; <code>php artisan cache:table<\/code> &#8211; ausf\u00fchren, um das vom Datenbanktreiber ben\u00f6tigte Datenbankschema automatisch zu generieren.<\/p>\n<p>Der <strong>Datenbanktreiber<\/strong> wird haupts\u00e4chlich in Situationen verwendet, in denen du jede beliebige Software auf deiner Hosting Plattform installieren kannst.<\/p>\n<p>Nehmen wir an, du verwendest einen kostenlosen Host Plan mit begrenzten Optionen. In diesem Fall w\u00fcrden wir vorschlagen, dass du dich an den <strong>Dateitreiber<\/strong> h\u00e4ltst, da der <strong>Datenbanktreiber<\/strong> in den meisten F\u00e4llen der schw\u00e4chste Punkt deiner Anwendung ist und es keine gute Idee ist, mehr Daten in diesen Engpass zu schieben.<\/p>\n<p>Um den <strong>Datenbanktreiber<\/strong> zu verwenden, f\u00fcge den folgenden Code zu deiner .<strong>env<\/strong> Datei hinzu:<\/p>\n<pre><code class=\"language-markdown\">CACHE_DRIVER=database<\/code><\/pre>\n<h4>4. Redis<\/h4>\n<p>Der Redis-Treiber nutzt die In-Memory-basierte Caching-Technologie namens <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/caching\/redis-cache\/\">Redis<\/a>. Obwohl es im Vergleich zu den anderen oben besprochenen Cache-Treibern sehr schnell ist, erfordert es die Installation und Konfiguration einer externen Technologie.<\/p>\n<p>Um den <strong>Redis<\/strong>-Treiber zu verwenden, f\u00fcge den folgenden Code zu deiner .<strong>env<\/strong>-Datei hinzu:<\/p>\n<pre><code class=\"language-markdown\">CACHE_DRIVER=redis<\/code><\/pre>\n<h4>5. Memcached<\/h4>\n<p>Memcached ist bekanntlich der beliebteste In-Memory-basierte Cache-Speicher. Wenn dich ein bisschen zus\u00e4tzliche Serverwartung nicht st\u00f6rt (du musst zus\u00e4tzliche Dienste installieren und warten), sind die speicherbasierten Cache-Treiber Memcached eine gute Option.<\/p>\n<p>Um den <strong>Memcached<\/strong>-Treiber zu verwenden, muss das <a href=\"https:\/\/pecl.php.net\/package\/memcached\">Memcached PECL-Paket<\/a> installiert werden.<\/p>\n<p>Um den <strong>Memcached<\/strong>-Treiber zu verwenden, f\u00fcge den folgenden Code zu deiner .<strong>env<\/strong>-Datei hinzu.<\/p>\n<pre><code class=\"language-markdown\">CACHE_DRIVER=memcached <\/code><\/pre>\n<p>Der <a href=\"https:\/\/www.georgebuckingham.com\/laravel-cache-driver-performance\/\">beste Cache-Treiber und die Leistung<\/a> des Cache-Treibers h\u00e4ngen vom Anwendungsfall deines Projekts und der Menge der abzurufenden Daten ab.<\/p>\n<h3>Laravel Cache Verwendung und Methoden<\/h3>\n<p>Laravel Cache bietet viele wertvolle Methoden, um viele Caching-Strategien zu implementieren.<\/p>\n<p>Im Folgenden werden wir die verschiedenen Methoden auflisten und erkl\u00e4ren (kategorisiert nach ihrem Anwendungsfall):<\/p>\n<ol>\n<li><code>put()<\/code><\/li>\n<li><code>get()<\/code><\/li>\n<li><code>many()<\/code><\/li>\n<li><code>putMany()<\/code><\/li>\n<li><code>increment()<\/code><\/li>\n<li><code>decrement()<\/code><\/li>\n<li><code>forever()<\/code><\/li>\n<li><code>forget()<\/code><\/li>\n<li><code>flush()<\/code><\/li>\n<li><code>remember()<\/code><\/li>\n<li><code>rememberForever()<\/code><\/li>\n<\/ol>\n<h4>Cache speichern<\/h4>\n<p>Neue Daten im Cache zu speichern ist sehr einfach, indem du die verschiedenen Methoden verwendest, die jeweils mehrere Anwendungsf\u00e4lle haben.<\/p>\n<h5>1. Cache::put()<\/h5>\n<p>Diese Methode akzeptiert drei Schl\u00fcsselparameter, die <strong>Dauer<\/strong> und die <strong>Daten<\/strong>, die gecacht werden sollen.<\/p>\n<p>Lass uns einen Blick darauf werfen, wie man <code><strong>Cache::put()<\/strong><\/code> benutzt:<\/p>\n<pre><code class=\"language-php\">Cache::put(key, data, duration)\n\n$post = Post::find(1);\n\nCache::put('post_1', $post, 20);\n<\/code><\/pre>\n<p>Der obige Code wird den Beitrag mit dem eindeutigen <strong>Key<\/strong> f\u00fcr 20 Sekunden zwischenspeichern.<\/p>\n<h5>2. Cache::putMany()<\/h5>\n<p>Diese Methode speichert ein Array von Daten im Cache auf einmal mit der gleichen Dauer. Sie akzeptiert zwei Parameter, n\u00e4mlich <strong>data<\/strong> und <strong>seconds<\/strong>.<\/p>\n<p>Lass uns einen Blick darauf werfen, wie man <code><strong>Cache::putMany()<\/strong><\/code> benutzt:<\/p>\n<pre><code class=\"language-php\">Cache::putMany(data, duration) \/\/ syntax\n\n$posts = Post::all();\n\nCache::putMany($posts, 20);<\/code><\/pre>\n<h5>3. Cache::remember()<\/h5>\n<p>Diese Methode ist eine weitere hervorragende M\u00f6glichkeit, die Cache Aside Strategie zu implementieren. Die Methode <strong><code>Cache::remember()<\/code><\/strong> akzeptiert drei Parameter, einen <strong>Key<\/strong>, <strong>Seconds<\/strong> und eine <strong>Closure<\/strong>, die verwendet wird, um Daten aus der Datenbank zu holen, wenn sie nicht gefunden werden.<\/p>\n<p>Lass uns einen Blick darauf werfen, wie man <strong><code>Cache::remember()<\/code><\/strong> benutzt:<\/p>\n<pre><code class=\"language-php\">Cache::remember(key, duration, closure) \/\/ syntax\n\nCache::remember('posts', 20, function(){\n  return Post::all();\n});\n<\/code><\/pre>\n<p>Laravel Cache hat auch die Methode <strong><code>Cache::rememberForever()<\/code><\/strong>, die den Parameter <strong>seconds<\/strong> nicht akzeptiert und die <strong>Daten<\/strong> f\u00fcr immer speichert.<\/p>\n<h5>4. Cache::forever()<\/h5>\n<p>Diese Methode speichert Daten im Cache Server f\u00fcr immer, ohne eine Dauer anzugeben. Du kannst es mit dem folgenden Code implementieren:<\/p>\n<pre><code class=\"language-php\">Cache::forever(key, data)\n\n$post = Post::find(1);\n\nCache::forever('post_1', $post);\n<\/code><\/pre>\n<h4>Cache Daten abrufen<\/h4>\n<p>Die Methoden in dieser Kategorie rufen Daten aus dem Cache ab. Einige dieser Methoden k\u00f6nnen sich unterschiedlich verhalten, je nachdem ob die Daten gefunden werden oder nicht.<\/p>\n<h5>1. Cache::get()<\/h5>\n<p>Diese Methode holt Daten vom Cache-Server mit einem bestimmten Key. Du kannst ein Element abrufen, indem du den folgenden Code verwendest:<\/p>\n<pre><code class=\"language-php\">Cache::get(key) \/\/ syntax\n\n$posts = Cache::get('posts');<\/code><\/pre>\n<h5>2. Cache::many()<\/h5>\n<p>Diese Methode ist \u00e4hnlich zu <strong><code>Cache::putMany()<\/code><\/strong>. Sie wird verwendet, um ein Array von gecachten Daten auf einmal abzurufen, indem ein Array der gecachten Schl\u00fcssel verwendet wird. Du kannst ein Array des Caches mit folgendem Code abrufen:<\/p>\n<pre><code class=\"language-php\">Cache::many(keys) \/\/ syntax\n\nconst $keys = [\n  'posts',\n  'post_1',\n  'post_2'\n];\n\n$posts = Cache::many($keys);\n<\/code><\/pre>\n<h5>3. Cache::remember()<\/h5>\n<p>Du kannst diese Methode auch verwenden, um gecachte Daten abzurufen, indem du den Cache-Server mit dem angegebenen Schl\u00fcssel \u00fcberpr\u00fcfst. Wenn die Daten im Cache gespeichert sind, wird es sie abrufen. Andernfalls wird es die Daten vom Datenbankserver abrufen und im Cache speichern. Diese Methode ist die gleiche wie die <strong><code>Cache::rememberForever()<\/code><\/strong> Methode mit nur einem zus\u00e4tzlichen <strong>Sekunden<\/strong> Parameter in der <strong><code>Cache::remember()<\/code><\/strong> Methode.<\/p>\n<h4>Elemente aus dem Cache entfernen<\/h4>\n<p>Die Methoden unter dieser Kategorie werden verwendet, um Elemente aus dem Cache zu entfernen, gruppiert nach Funktionalit\u00e4t.<\/p>\n<h5>1. Cache::forget()<\/h5>\n<p>Diese Methode entfernt ein einzelnes Element aus dem Cache mit einem angegebenen Schl\u00fcsselparameter:<\/p>\n<pre><code class=\"language-php\">Cache::forget('key');<\/code><\/pre>\n<h5>2. Cache::flush()<\/h5>\n<p>Diese Methode l\u00f6scht alle Cache-Engines. Sie l\u00f6scht alle Elemente, die irgendwo im Cache gespeichert sind:<\/p>\n<pre><code class=\"language-php\">Cache::flush();<\/code><\/pre>\n<h4>Incrementing or Decrementing Cache Values<\/h4>\n<p>Du kannst die Werte eines Integer-Wertes, der in deinem Cache gespeichert ist, anpassen, indem du die Methoden increment und decrement verwendest:<\/p>\n<pre><code class=\"language-php\">Cache::increment('key');\n\nCache::increment('key', $amount);\n\nCache::decrement('key');\n\nCache::decrement('key', $amount);\n<\/code><\/pre>\n<p>Laravel Cache hat viele tolle Methoden, die wir hier nicht besprochen haben, aber die oben genannten Methoden sind beliebt. Einen \u00dcberblick \u00fcber alle Methoden kannst du dir in der offiziellen <a href=\"https:\/\/laravel.com\/docs\/8.x\/cache#cache-usage\">Laravel Cache Dokumentation<\/a> verschaffen.<\/p>\n<h3>Cache-Befehle erkl\u00e4rt<\/h3>\n<p>Laravel stellt Befehle zur Verf\u00fcgung, um die Arbeit mit dem Laravel Cache einfach und schnell zu machen. Im Folgenden findest du eine Liste aller <a href=\"https:\/\/kinsta.com\/de\/blog\/ssh-befehle\/\">Befehle<\/a> und ihrer Funktionalit\u00e4ten.<\/p>\n<h4>Laravel Cache l\u00f6schen<\/h4>\n<p>Dieser Befehl wird verwendet, um den Laravel Cache zu l\u00f6schen, bevor er \u00fcberhaupt abl\u00e4uft, indem du das Terminal\/die Konsole benutzt. Zum Beispiel kannst du den folgenden Befehl ausf\u00fchren:<\/p>\n<pre><code class=\"language-bash\">php artisan cache:clear<\/code><\/pre>\n<h4>Route-Cache l\u00f6schen<\/h4>\n<p>Dieser Befehl wird verwendet, um den Routen-Cache deiner Laravel-Anwendung zu l\u00f6schen. F\u00fchre zum Beispiel den folgenden Befehl aus, um deinen Routen-Cache zu l\u00f6schen:<\/p>\n<pre><code class=\"language-bash\">php artisan config:cache<\/code><\/pre>\n<h4>Kompilierte View-Dateien l\u00f6schen<\/h4>\n<p>Dieser Befehl wird verwendet, um die kompilierten View-Dateien deiner Laravel-Anwendung zu l\u00f6schen. Du kannst es mit dem folgenden Befehl erreichen:<\/p>\n<pre><code class=\"language-php\">php artisan view:clear<\/code><\/pre>\n<h4>Datenbank Tabelle<\/h4>\n<p>Wenn du den Datenbanktreiber verwendest, musst du ein Datenbankschema namens <strong>Cache<\/strong> erstellen, um die Cachedaten zu speichern. Du kannst auch den Artisan Befehl verwenden, um eine Migration mit dem richtigen Schema zu erzeugen:<\/p>\n<pre><code class=\"language-bash\">php artisan cache:table<\/code><\/pre>\n<h2>Laravel Caching-Strategien<\/h2>\n<p>Abh\u00e4ngig von deinem Anwendungsfall und deiner Datenstruktur stehen dir wahrscheinlich mehrere verschiedene Cache-Strategien zur Verf\u00fcgung. Du kannst sogar eine eigene Strategie erstellen, die deinen Bed\u00fcrfnissen entspricht. Im Folgenden gehen wir auf die Liste der beliebtesten Caching-Strategien ein, die du in deinem Laravel-Projekt implementieren kannst.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Kinsta erm\u00f6glicht es dir, Laravel f\u00fcr deine Produkte einzusetzen, auch wenn es von unserem Team nicht offiziell unterst\u00fctzt wird.<\/p>\n<\/aside>\n\n<h3>writeThrough<\/h3>\n<p>Bei der <strong>writeThrough-Strategie<\/strong> sitzt der Cache-Server zwischen den Anfragen und dem Datenbankserver, so dass jede <strong>Schreiboperation<\/strong> durch den Cache-Server geht, bevor sie zum Datenbankserver geht. Somit ist die <strong>writeThrough<\/strong> Caching Strategie \u00e4hnlich wie die <strong>readThrough<\/strong> Strategie.<\/p>\n<p>Du kannst diese Strategie mit dem Laravel Cache mit folgendem Code implementieren:<\/p>\n<pre><code class=\"language-php\">public function writeThrough($key, $data, $minutes) {\n    $cacheData = Cache::put($key, $data, $minutes)\n\n    \/\/ Database Server is called from(after) the Cache Server.\n    $this-&gt;storeToDB($cachedData)\n    return $cacheData\n}\n\nprivate function storeToDB($data){\n    Database::create($data)\n    return true\n}<\/code><\/pre>\n<h3>writeBack (writeBehind)<\/h3>\n<p>Diese Strategie ist eine fortgeschrittene Art, die <strong>writeThrough<\/strong> Strategie zu implementieren, indem die Verz\u00f6gerung der Schreiboperationen hinzugef\u00fcgt wird.<\/p>\n<p>Du kannst dies auch die <strong>writeBehind<\/strong> Strategie nennen, wegen der zeitlichen Verz\u00f6gerung, die auf dem Cache Server angewendet wird, bevor die Daten auf den Datenbankserver geschrieben werden.<\/p>\n<p>Du kannst diese Strategie mit dem Laravel Cache mit dem folgenden Code implementieren:<\/p>\n<pre><code class=\"language-php\">$durationToFlush = 1; \/\/ (in minute)\n $tempDataToFlush = [];\n\n  public function writeBack($key, $data, $minutes){\n    return $this-&gt;writeThrough($key, $data, $minutes);\n  }\n\n  public function writeThrough($key, $data, $minutes) {\n      $cacheData = Cache::put($key, $data, $minutes);\n      $this-&gt;storeForUpdates($cacheData);\n      return $cacheData;\n  }\n\n\/\/ Stores new data to temp Array for updating\n  private function storeForUpdates($data){\n    $tempData = {};\n    $tempData['duration'] = this.getMinutesInMilli();\n    $tempData['data'] = data;\n    array_push($tempDataToFlush, data);\n  }\n\n\/\/ Converts minutes to millisecond\nprivate function getMinutesInMilli(){\n  $currentDate = now();\n  $futureDate = Carbon(Carbon::now()-&gt;timestamp + $this-&gt;durationToFlush * 60000)\n  return $futureDate-&gt;timestamp\n}\n\n\/\/ Calls to update the Database Server.\npublic function updateDatabaseServer(){\n  if($this-&gt;tempDataToFlush){\n    foreach($this-&gt;tempDataToFlush as $index =&gt; $obj){\n      if($obj-&gt;duration timestamp){\n        if(Database::create($obj-&gt;data)){\n            array_splice($this-&gt;tempDataToFlush, $index, 1);\n        }\n      }\n    }\n  }\n}<\/code><\/pre>\n<p>Die <strong>writeBack<\/strong>-Methode ruft die <strong>writeThrough<\/strong>-Methode auf, die die Daten auf dem Cache-Server und einem tempor\u00e4ren Array speichert, um sie sp\u00e4ter mit der <strong>updateDatabaseServer<\/strong>-Methode auf den Datenbankserver zu \u00fcbertragen. Du kannst einen <a href=\"https:\/\/masteringbackend.com\/posts\/laravel-cron-the-definitive-guide\">CronJob<\/a> einrichten, um den Datenbankserver alle f\u00fcnf Minuten zu aktualisieren.<\/p>\n<h3>writeAround<\/h3>\n<p>Diese Strategie erlaubt es, dass alle <strong>Schreiboperationen<\/strong> direkt an den Datenbankserver gehen, ohne den Cache-Server zu aktualisieren &#8211; nur w\u00e4hrend der <strong>Leseoperationen<\/strong> wird der Cache-Server aktualisiert.<\/p>\n<p>Angenommen ein Benutzer m\u00f6chte einen neuen <strong>Artikel<\/strong> erstellen, dann wird der <strong>Artikel<\/strong> direkt auf dem Datenbankserver gespeichert. Wenn der Benutzer den Inhalt des <strong>Artikels<\/strong> zum ersten Mal lesen m\u00f6chte, wird der <strong>Artikel<\/strong> vom Datenbankserver abgerufen und aktualisiert den Cache-Server f\u00fcr nachfolgende Anfragen.<\/p>\n<p>Du kannst diese Strategie mit dem Laravel Cache mit folgendem Code implementieren:<\/p>\n<pre><code class=\"language-php\">public function writeAround($data) {\n    $storedData = Database::create($data);\n    return $storedData;\n}\n\npublic function readOperation($key, $minutes){\n    $cacheData = Cache::remember($key, $minutes, function() {\n      return Article::all();\n    })\n    return $cacheData;\n}\n<\/code><\/pre>\n<h3>Cache Aside (Lazy Loading)<\/h3>\n<p>Bei dieser Strategie wird die Datenbank beiseite gelegt und die Anwendung fordert zuerst Daten vom Cache-Server an. Dann, wenn es einen Hit gibt, werden die Daten an den Client zur\u00fcckgegeben. Andernfalls, wenn es einen Miss gibt (nicht gefunden), fordert der Datenbankserver die Daten an und aktualisiert den Cache-Server f\u00fcr nachfolgende Anfragen.<\/p>\n<p>Du kannst diese Strategie mit dem Laravel Cache mit folgendem Code umsetzen:<\/p>\n<pre><code class=\"language-php\">public function lazyLoadingStrategy($key, $minutes, $callback) {\n  if (Cache::has($key)) {\n      $data = Cache::get($key);\n      return $data;\n  } else {\n      \/\/ Database Server is called outside the Cache Server.\n      $data = $callback();\n      Cache::set($key, $data, $minutes);\n      return $data;\n  }\n}<\/code><\/pre>\n<p>Der obige Code zeigt die Implementierung der Cache Aside Strategy, was der Implementierung der <strong>Cache::remember<\/strong> Methode entspricht.<\/p>\n<h3>Read Through<\/h3>\n<p>Diese Strategie ist das direkte Gegenteil der Cache Aside Strategie. Bei dieser Strategie sitzt der Cache Server zwischen dem Client Request und dem Datenbank Server.<\/p>\n<p>Anfragen gehen direkt an den Cache Server und der Cache Server ist daf\u00fcr verantwortlich, die Daten vom <a href=\"https:\/\/kinsta.com\/de\/blog\/installiert-php\/\">Datenbankserver<\/a> zu holen, wenn sie nicht im Cache Server gefunden werden.<\/p>\n<p>Du kannst diese Strategie mit dem Laravel Cache mit dem folgenden Code implementieren:<\/p>\n<pre><code class=\"language-php\">public function readThrough($key, $minutes) {\n      $data = Cache::find($key, $minutes);\n      return $data;\n}\n\nprivate function find($key, $minutes){\n    if(Cache::has($key);){\n      return Cache::get($key);\n    }\n\n    \/\/ Database Server is called from the Cache Server.\n    $DBdata = Database::find($key);\n    Cache:put($key, $DBdata, $minutes);\n    return $DBdata;\n}<\/code><\/pre>\n<p>Da hast du es! Wir haben jetzt ein paar beliebte Caching-Strategien f\u00fcr deine n\u00e4chste Laravel-Anwendung besprochen. Denke daran, dass du auch eine benutzerdefinierte Caching-Strategie verwenden kannst, die am besten zu deinen Projektanforderungen passt.<\/p>\n<h2>Caching des UI Teils einer Laravel App<\/h2>\n<p>Das Caching der UI unserer Laravel App ist ein Konzept, das als Full Page Cache FPC bekannt ist. Der Begriff bezieht sich auf den Prozess des Cachens der HTML-Antwort von einer Anwendung.<\/p>\n<p>Es eignet sich hervorragend f\u00fcr Anwendungen, bei denen sich die dynamischen HTML-Daten nicht h\u00e4ufig \u00e4ndern. Du kannst die HTML-Antwort zwischenspeichern, um eine schnellere Gesamtantwort und ein schnelleres Rendering des HTML zu erreichen.<\/p>\n<p>Wir k\u00f6nnen FPC mit der folgenden Codezeile implementieren:<\/p>\n<pre><code class=\"language-php\">class ArticlesController extends Controller {\n    public function index() {\n        if ( Cache::has('articles_index') ) {\n            return Cache::get('articles_index');\n        } else {\n            $news = News::all();\n            $cachedData = view('articles.index')-&gt;with('articles', $news)-&gt;render();\n            Cache::put('articles_index', $cachedData);                                         \n            return $cachedData;           \n        }  \n    }\n}<\/code><\/pre>\n<p>Auf den ersten Blick hast du vielleicht bemerkt, dass wir pr\u00fcfen, ob die <strong>articles_index<\/strong> Seite bereits in unserem Cache-Server existiert. Dann geben wir die Seite zur\u00fcck, indem wir sie mit Laravel&#8217;s <strong>view()<\/strong> und <strong>render()<\/strong> Methoden rendern.<\/p>\n<p>Andernfalls rendern wir die Seite und speichern die Ausgabe in unserem Cache-Server f\u00fcr sp\u00e4tere Anfragen, bevor wir die gerenderte Seite an den Browser zur\u00fcckgeben.<\/p>\n<h2>Eine Laravel App bauen<\/h2>\n<p>Jetzt werden wir das bisher Gelernte anwenden, indem wir ein neues Laravel Projekt erstellen und den Laravel Cache implementieren.<\/p>\n<p>Wenn du Laravel noch nicht benutzt hast, kannst du dir durchlesen, <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-laravel\/\">was Laravel ist<\/a> und einen Blick auf unsere Liste mit <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-tutorial\/\">exzellenten Laravel-Tutorials<\/a> werfen, um loszulegen.<\/p>\n<h3>Laravel einrichten<\/h3>\n<p>Als erstes werden wir eine neue Laravel Instanz mit dem folgenden Befehl erstellen. Du kannst in der offiziellen Dokumentation nachschauen, um mehr zu erfahren.<\/p>\n<p>\u00d6ffne deine Konsole und navigiere zu dem Ort, an dem du deine PHP-Projekte speicherst, bevor du die unten stehenden Befehle ausf\u00fchrst. Stelle sicher, dass <a href=\"https:\/\/getcomposer.org\/\">Composer<\/a> installiert und richtig konfiguriert ist.<\/p>\n<pre><code class=\"language-bash\">composer create-project laravel\/laravel fast-blog-app\n\n\/\/ Change directory to current Laravel installation\ncd fast-blog-app\n\n\/\/ Start Laravel development server.\nphp artisan serve\n<\/code><\/pre>\n<h3>Konfigurieren und Seeding der Datenbank<\/h3>\n<p>Als n\u00e4chstes werden wir unsere Datenbank einrichten, ein neues <strong>Artikelmodell<\/strong> erstellen und 500 gef\u00e4lschte Datenpunkte zum Testen setzen.<\/p>\n<p>\u00d6ffne deinen <a href=\"https:\/\/kinsta.com\/de\/blog\/adminer\/\">Datenbank-Client<\/a> und erstelle eine neue Datenbank. Wir machen das gleiche mit dem Namen <strong>fast_blog_app_db<\/strong> und f\u00fcllen dann unsere .<strong>env<\/strong> Datei mit den Datenbank Credentials:<\/p>\n<pre><code class=\"language-bash\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=fast_blog_app_db\nDB_USERNAME=\/\/DB USERNAME HERE\nDB_PASSWORD=\/\/DB PASSWORD HERE\n<\/code><\/pre>\n<p>Als n\u00e4chstes f\u00fchren wir den folgenden Befehl aus, um die Migration und das <strong>Artikelmodell<\/strong> gleichzeitig zu erstellen:<\/p>\n<pre><code class=\"language-bash\">php artisan make:model Article -m<\/code><\/pre>\n<p>\u00d6ffne die neu erstellte Migration gefunden d<code>atabase\/migrations\/xxx-create-articles-xxx.php<\/code> und f\u00fcge den folgenden Code ein:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\nclass CreateArticlesTable extends Migration\n{\n    \/**\n     * Run the migrations.\n     *\n     * @return void\n     *\/\n    public function up()\n    {\n        Schema::create('articles', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('title');\n            $table-&gt;text('description');\n            $table-&gt;timestamps();\n        });\n    }\n    \/**\n     * Reverse the migrations.\n     *\n     * @return void\n     *\/\n    public function down()\n    {\n        Schema::dropIfExists('articles');\n    }\n}<\/code><\/pre>\n<p>Als n\u00e4chstes f\u00fchrst du den folgenden Befehl aus, um einen neuen Seeder zu erstellen:<\/p>\n<pre><code class=\"language-bash\">php artisan make:seeder ArticleSeeder<\/code><\/pre>\n<p>\u00d6ffne die neu erstellte Seeder-Datei, die du unter <code>database\/seeders\/ArticleSeeder.php<\/code> findest und f\u00fcge den folgenden Code ein:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace Database\\Seeders;\nuse App\\Models\\Article;\nuse Illuminate\\Database\\Seeder;\nclass ArticleSeeder extends Seeder\n{\n    \/**\n     * Run the database seeds.\n     *\n     * @return void\n     *\/\n    public function run()\n    {\n        Article::factory()-&gt;count(500)-&gt;create();\n    }\n}<\/code><\/pre>\n<p>\u00d6ffne die Datei <strong>DatabaseSeeder.php<\/strong> im gleichen Verzeichnis und f\u00fcge den folgenden Code hinzu:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace Database\\Seeders;\nuse Illuminate\\Database\\Seeder;\nclass DatabaseSeeder extends Seeder\n{\n    \/**\n     * Seed the application's database.\n     *\n     * @return void\n     *\/\n    public function run()\n    {\n        $this-&gt;call(ArticleSeeder::class);\n    }\n}<\/code><\/pre>\n<p>Als n\u00e4chstes f\u00fchrst du den folgenden Befehl aus, um eine neue Fabrik zu erstellen:<\/p>\n<pre><code class=\"language-bash\">php artisan make:factory ArticleFactory<\/code><\/pre>\n<p>\u00d6ffne die neu erstellte Factory-Datei, die du unter <code>database\/factories\/ArticleFactory.php<\/code> findest und f\u00fcge den folgenden Code ein:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace Database\\Factories;\nuse App\\Models\\Article;\nuse Illuminate\\Database\\Eloquent\\Factories\\Factory;\nclass ArticleFactory extends Factory\n{\n    \/**\n     * The name of the factory's corresponding model.\n     *\n     * @var string\n     *\/\n    protected $model = Article::class;\n    \/**\n     * Define the model's default state.\n     *\n     * @return array\n     *\/\n    public function definition()\n    {\n        return [\n            'title' =&gt; $this-&gt;faker-&gt;text(),\n            'description' =&gt; $this-&gt;faker-&gt;paragraph(20)\n        ];\n    }\n}<\/code><\/pre>\n<p>F\u00fchre nun den folgenden Befehl aus, um unser neu erstelltes Schema zu migrieren und auch unsere Fake-Daten zum Testen zu seeden:<\/p>\n<pre><code class=\"language-bash\">php artisan migrate --seed<\/code><\/pre>\n<h3>Den Artikel Controller erstellen<\/h3>\n<p>Als n\u00e4chstes werden wir unseren Controller erstellen und unsere Routen einrichten, um unsere Anfrage zu bearbeiten und die Daten mit Hilfe des obigen Modells abzurufen.<\/p>\n<p>F\u00fchre den folgenden Befehl aus, um einen neuen <strong>ArticlesController<\/strong> innerhalb des <code>app\/Http\/Controllers<\/code> Ordners zu erstellen:<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller ArticlesController --resource<\/code><\/pre>\n<p>\u00d6ffne die Datei und f\u00fcge den folgenden Code in die Klasse ein:<\/p>\n<pre><code class=\"language-php\">\/\/ Returns all 500 articles with Caching\npublic function index() {\n  return Cache::remember('articles', 60, function () {\n      return Article::all();\n  });\n}\n\n\/\/ Returns all 500 without Caching \npublic function allWithoutCache() {\n  return Article::all();\n}<\/code><\/pre>\n<p>Danach \u00f6ffnest du die <strong>api.php<\/strong> Datei, die sich im Ordner <code>routes\/<\/code> befindet und f\u00fcgst den folgenden Code ein, um einen Endpunkt zu erstellen, den wir aufrufen k\u00f6nnen, um unsere Daten abzurufen:<\/p>\n<pre><code class=\"language-php\">Route::get('\/articles', 'ArticlesController@index');\n\nRoute::get('\/articles\/withoutcache', 'ArticlesController@allWithoutcache');<\/code><\/pre>\n<h3>Testen der Performance<\/h3>\n<p>Zum Schluss <a href=\"https:\/\/kinsta.com\/de\/blog\/application-performance-monitoring\/\">testen wir die Performance<\/a> der Antwort unserer App mit oder ohne die Implementierung des Laravel-Caches.<\/p>\n<p>Dieser Screenshot zeigt die Antwortzeit der API mit implementiertem Cache:<\/p>\n<figure id=\"attachment_99464\" aria-describedby=\"caption-attachment-99464\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/07\/laravel-api-response-time-cache.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-99464 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/07\/laravel-api-response-time-cache-1024x583.png\" alt=\"Laravel API Antwortzeit mit Cache.\" width=\"1024\" height=\"583\"><\/a><figcaption id=\"caption-attachment-99464\" class=\"wp-caption-text\">Laravel API Antwortzeit mit Cache.<\/figcaption><\/figure>\n<p>Der folgende Screenshot zeigt die Antwortzeit der API ohne implementierten Cache &#8211; beachte, dass die Antwortzeit gegen\u00fcber der gecachten Instanz um \u00fcber <strong>5.000%<\/strong> gestiegen ist:<\/p>\n<figure id=\"attachment_99465\" aria-describedby=\"caption-attachment-99465\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/07\/laravel-api-response-time-no-cache.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-99465 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/07\/laravel-api-response-time-no-cache-1024x584.png\" alt=\"Laravel API Antwortzeit ohne Cache.\" width=\"1024\" height=\"584\"><\/a><figcaption id=\"caption-attachment-99465\" class=\"wp-caption-text\">Laravel API Antwortzeit ohne Cache.<\/figcaption><\/figure>\n\n<h2>Summary<\/h2>\n<p>Wir haben verschiedene Strategien f\u00fcr die Implementierung und Manipulation von Laravel Caching erforscht, indem wir ein neues Projekt erstellt, die Antworten und die Ergebnisse verglichen haben.<\/p>\n<p>Du hast auch gelernt, wie du die verschiedenen Laravel-Caching-Treiber und -Methoden nutzen kannst. Au\u00dferdem haben wir verschiedene Caching-Strategien implementiert, damit du herausfinden kannst, welche f\u00fcr dich die richtige sein k\u00f6nnte.<\/p>\n<p>F\u00fcr mehr Laravel, entdecke unsere handverlesene Auswahl der <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-tutorial\/\">besten Laravel-Tutorials<\/a>. Egal ob du ein Anf\u00e4nger oder ein fortgeschrittener Laravel-Entwickler bist, es ist f\u00fcr jeden etwas dabei!<\/p>\n<p><em>Wenn du noch Fragen zum Laravel Caching hast, lass es uns bitte in den Kommentaren wissen.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Caching ist essentiell, um eine hohe Performance und Skalierbarkeit zu erreichen. Die Implementierung der richtigen Caching-Strategie bereits in der Entwicklungsphase ist entscheidend, um verz\u00f6gerte APIs und &#8230;<\/p>\n","protected":false},"author":193,"featured_media":43431,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[400,38],"topic":[958,969],"class_list":["post-43416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-laravel","tag-php","topic-laravel","topic-php-frameworks"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Alles was du \u00fcber Laravel Caching wissen musst<\/title>\n<meta name=\"description\" content=\"Lerne, wie du die Performance und Skalierbarkeit deiner Software steigern kannst, indem du die richtige Caching-Strategie in Laravel implementierst und manipulierst.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Alles was du \u00fcber Laravel Caching wissen musst\" \/>\n<meta property=\"og:description\" content=\"Lerne, wie du die Performance und Skalierbarkeit deiner Software steigern kannst, indem du die richtige Caching-Strategie in Laravel implementierst und manipulierst.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-10T10:23:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-29T05:27:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Solomon Eseme\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Lerne, wie du die Performance und Skalierbarkeit deiner Software steigern kannst, indem du die richtige Caching-Strategie in Laravel implementierst und manipulierst.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg\" \/>\n<meta name=\"twitter:creator\" content=\"@kaperskyguru\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Solomon Eseme\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"16\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\"},\"author\":{\"name\":\"Solomon Eseme\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\"},\"headline\":\"Alles was du \u00fcber Laravel Caching wissen musst\",\"datePublished\":\"2021-09-10T10:23:16+00:00\",\"dateModified\":\"2023-08-29T05:27:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\"},\"wordCount\":2921,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg\",\"keywords\":[\"laravel\",\"php\"],\"articleSection\":[\"Webentwicklung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\",\"name\":\"Alles was du \u00fcber Laravel Caching wissen musst\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg\",\"datePublished\":\"2021-09-10T10:23:16+00:00\",\"dateModified\":\"2023-08-29T05:27:27+00:00\",\"description\":\"Lerne, wie du die Performance und Skalierbarkeit deiner Software steigern kannst, indem du die richtige Caching-Strategie in Laravel implementierst und manipulierst.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg\",\"width\":1460,\"height\":730,\"caption\":\"Alles was du \u00fcber Laravel Caching wissen musst\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Alles was du \u00fcber Laravel Caching wissen musst\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\",\"name\":\"Solomon Eseme\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g\",\"caption\":\"Solomon Eseme\"},\"description\":\"I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me\",\"sameAs\":[\"https:\/\/masteringbackend.com\",\"https:\/\/linkedin.com\/in\/solomoneseme\",\"https:\/\/x.com\/kaperskyguru\"],\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/solomoneseme\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Alles was du \u00fcber Laravel Caching wissen musst","description":"Lerne, wie du die Performance und Skalierbarkeit deiner Software steigern kannst, indem du die richtige Caching-Strategie in Laravel implementierst und manipulierst.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/","og_locale":"de_DE","og_type":"article","og_title":"Alles was du \u00fcber Laravel Caching wissen musst","og_description":"Lerne, wie du die Performance und Skalierbarkeit deiner Software steigern kannst, indem du die richtige Caching-Strategie in Laravel implementierst und manipulierst.","og_url":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2021-09-10T10:23:16+00:00","article_modified_time":"2023-08-29T05:27:27+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg","type":"image\/jpeg"}],"author":"Solomon Eseme","twitter_card":"summary_large_image","twitter_description":"Lerne, wie du die Performance und Skalierbarkeit deiner Software steigern kannst, indem du die richtige Caching-Strategie in Laravel implementierst und manipulierst.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg","twitter_creator":"@kaperskyguru","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Solomon Eseme","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/"},"author":{"name":"Solomon Eseme","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2"},"headline":"Alles was du \u00fcber Laravel Caching wissen musst","datePublished":"2021-09-10T10:23:16+00:00","dateModified":"2023-08-29T05:27:27+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/"},"wordCount":2921,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg","keywords":["laravel","php"],"articleSection":["Webentwicklung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/","url":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/","name":"Alles was du \u00fcber Laravel Caching wissen musst","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg","datePublished":"2021-09-10T10:23:16+00:00","dateModified":"2023-08-29T05:27:27+00:00","description":"Lerne, wie du die Performance und Skalierbarkeit deiner Software steigern kannst, indem du die richtige Caching-Strategie in Laravel implementierst und manipulierst.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/laravel-caching\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/laravel-caching.jpeg","width":1460,"height":730,"caption":"Alles was du \u00fcber Laravel Caching wissen musst"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/de\/thema\/laravel\/"},{"@type":"ListItem","position":3,"name":"Alles was du \u00fcber Laravel Caching wissen musst"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2","name":"Solomon Eseme","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g","caption":"Solomon Eseme"},"description":"I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me","sameAs":["https:\/\/masteringbackend.com","https:\/\/linkedin.com\/in\/solomoneseme","https:\/\/x.com\/kaperskyguru"],"url":"https:\/\/kinsta.com\/de\/blog\/author\/solomoneseme\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/43416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=43416"}],"version-history":[{"count":9,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/43416\/revisions"}],"predecessor-version":[{"id":49743,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/43416\/revisions\/49743"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/translations\/en"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/translations\/fr"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/translations\/it"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/translations\/es"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/translations\/de"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/translations\/nl"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/translations\/se"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43416\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/43431"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=43416"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=43416"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=43416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}