Welche Methoden des Caching, außer der Datei oder der Datenbank, sind verfügbar?

9

Momentan kenne ich nur zwei Möglichkeiten, Daten zwischenzuspeichern (ich benutze PHP, aber ich nehme an, dass dasselbe auch für die meisten Sprachen gilt).

  1. Speichern Sie den Cache in einer Datei
  2. Speichern Sie den Cache in einem großen DB-Feld

Gibt es andere (vielleicht bessere) Arten des Caching oder ist es wirklich so einfach?

    
Teifion 06.08.2008, 22:21
quelle

4 Antworten

2

Vielleicht möchten Sie genauer präzisieren, was Sie zwischenspeichern möchten. Sie haben alle diese Möglichkeiten zu cachen:

  • Zugreifen auf die Datenbank , in der Sie die Daten zwischenspeichern, indem Sie zuerst Ihr RDBMS richtig abstimmen und dann eine Schicht verwenden, um die Entscheidung zu delegieren, mehrere Abfragen für dieselben Daten zu ermitteln (mit AdoDB zum Beispiel.)
  • Extrahieren von Berechnungen aus Schleifen im Code , sodass Sie nicht denselben Wert mehrmals berechnen. Hier ist Ihr dritter Weg: Speichern von Ergebnissen in der Sitzung für den Benutzer.
  • Vorkompilieren des PHP-Codes mit einer Erweiterung wie APC Cache . Auf diese Weise müssen Sie nicht für jede Anfrage den gleichen PHP-Code kompilieren.
  • Die an den Benutzer gesendete Seite stellt sicher, dass Sie die richtigen META-Tags festlegen (tun Sie etwas Gutes für die Welt und verwenden Sie ETL nicht mindestens unbedingt); oder vielleicht dynamische Seiten komplett statisch machen (mit einem Batch-Prozess, der HTML-Seiten erzeugt); oder indem Sie einen Proxy-Cache wie Tintenfisch verwenden.
  • Prefetching und damit verweise ich auf all diese Möglichkeiten, die Sie haben, um die Benutzererfahrung zu verbessern, indem Sie einfach Dinge tun, während der Benutzer nicht in Ihre Richtung schaut. Sie können beispielsweise IMG-Tags in die HTML-Datei laden, das RDBMS für die Präfekturierung vorbereiten, Ergebnisse vorberechnen, die komplexe Berechnungen in der Datenbank speichern, usw.

Aus meiner Erfahrung wette ich, dass Ihr Code viel verbessert werden kann, bevor wir über das Cachen von Dingen reden. Stellen Sie sich zum Beispiel vor, wie strukturiert die Navigation Ihrer Site ist und wie gut Sie die Benutzererfahrung steuern. Dann überprüfe deinen Code mit einem Tool wie XDebug .

Überprüfen Sie auch, wie gut Sie Ihre SQL-Abfragen durchführen und wie gut Sie Ihre Tabellen indizieren. Überprüfen Sie dann den Code erneut, um nach Möglichkeiten zu suchen, die Regel "mehrmals lesen, aber nur einmal schreiben" anzuwenden.

Verwenden Sie ein einfaches Tool wie YSlow , um andere einfache Dinge zu verbessern. Überprüfen Sie Ihren Code erneut, indem Sie nach Möglichkeiten suchen, Logik in den Browser zu stellen (über JavaScript)

    
ggasp 07.08.2008, 00:46
quelle
1

Sie können auch im Speicher zwischenspeichern, was sehr viel effizienter ist. Versuchen Sie memcached .

    
Seb 06.08.2008 22:23
quelle
0

Das Memcaching wird abgeschlossen, macht die einfachen Sachen gut und kann distributiv werden und all das Jazz, wenn du es auch brauchst

    
Kevin Sheffield 07.08.2008 00:48
quelle
0

Wenn Sie Apache verwenden, können Sie mit mod_rewrite Ihre Webseiten statisch zwischenspeichern. Nehmen wir an, Sie verwenden PHP und Sie haben eine Anfrage für "/somepage.php". In Ihrer .htaccess Datei schreiben Sie folgendes:

%Vor%

Wenn Ihr Cache leer ist, wird die Anfrage wie gewohnt von Ihrem PHP-Skript bearbeitet, so dass es jetzt nur noch darum geht, dass Ihr PHP-Skript den resultierenden HTML-Code im Cache speichert. Der einfachste Weg, dies zu tun, ist eine andere htaccess-Regel zu verwenden, um ein paar php-Dateien an alle php-Anfragen anzuhängen (dies ist vielleicht eine gute Idee, abhängig von Ihrer Anwendung):

%Vor%

Dann würden Sie so etwas tun:

pre_cache.php:

%Vor%

post_cache.php:

%Vor%

Mit einigen zusätzlichen regulären Ausdrücken in der .htaccess-Datei könnten wir wahrscheinlich auch Abfragen von String-Anfragen starten, aber ich überlasse das als Übung für den Leser:)

    
Erlend Halvorsen 15.09.2008 21:28
quelle

Tags und Links