0251 / 590 837 15
info@a-coding-project.de

Tutorial: PEAR’s Cache_Lite

Optimierung durch Caching

Optimierung durch Caching

PEAR Cache_Lite ist ein leicht zu benutzendes Cache-System. Unter einem Cache versteht man, die Zwischenspeicherung von Daten. Wenn man zum Beispiel seine Navigation dynamisch in der Datenbank aufbaut, müssen bei jedem Aufruf alle Links ausgelesen, sortiert und ausgegeben werden. Dort kann man Geschwindigkeit sparen, in den man sie z.B. einmal pro Tag ausliest und zwischenspeichert. Das hat den Vorteil, dass man nicht jeden einzelnen Eintrag auslesen muss, sondern einfach den Inhalt aus dem Cache. Das ist um einiges schneller.

Als Beispiel werde ich eine kleine HTML-Seite generieren. Wenn diese nicht im Cache vorhanden ist, wird sie in den Cache geladen. Danach wird sie ausegeben. In diesem Falle macht ein Cache zwar nicht wirklich Sinn, aber es soll ja auch nur veranschaulichen wie es geht. Um zu sehen, dass es wirklich zwischengespeichert wird, baue ich die Uhrzeit mit ein. Diese sollte dann, solange die Seite im Cache ist, immer gleich bleiben:

<?PHP
require_once('pear/PEAR/Cache/Lite.php');

$parameter = array('cacheDir' => 'cache/',
                   'lifeTime' => 10000, 
                   'pearErrorMode' =>CACHE_LITE_ERROR_DIE);
$Cache_Lite = new Cache_Lite($parameter);

if(!$seite = $Cache_Lite->get(1)){
  $seite = "<html>
              <body>
                <p>Uhrzeit: ".date("H:i:s")."</p>
              </body>
            </html>";
  $Cache_Lite->Save($seite,1);
}
echo $seite;

?>

Als Konstruktor bekommt Cache_Lite ein Array von Parametern(hier $parameter). Hier kann mit cacheDir das Verzeichnis angegeben werden, in dem die gecachten Daten gespeichert werden sollen. LifeTime gibt die Anzahl in Sekunden an, wie lange die Seite gültig ist. Ist sie ungültig, wird sie neu hereingeladen. So kann man aktuelle Daten zeigen, aber trotzdem an Performance gewinnen, da diese eben nur einmal in X Sekunden ausgelesen werden. PearErrorMode gibt noch an, in welchen Modus Fehler behandelt werden sollen. In diesem Fall, wird wie bei den normalen PHP-Syntax-Fehlern die Fehlermeldung ausgegeben und die Ausführung der Skripts abgebrochen.

Mit der Methode get, kann man die Daten auslesen. Sind sie nicht vorhanden, gibt die Zuwesieund false aus. Als Parameter muss hier eine id angegebn werden, unter welcher die Daten gespeichert sind.

Mit dem Befehl save werden logischerweise die Daten gespeichert. Im ersten Parameter muss der Inhalt angegeben werden und im zweiten wie auch bei get die id.

Da wir hier den Inhalt in der Seite gespeichert haben, kann man diese nun einfach ausgeben. Wie Du sehen wirst, ist beim zweiten Aufruf die gleiche Uhrzeit wie beim ersten.

Die Abbildung oben stammt von Mike Nottebrock auf Pixelio.de

Verwandte Themen