Quiq::Cache - Cache Datenstruktur in Datei
Quiq::Hash
use Quiq::Cache; sub ... { ... # Instantiiere Cache my $c = Quiq::Cache->new($cacheDir,$duration,\@key) -inactive => $condition, ); if (my $ref = $c->read) { return $ref; # liefere Datenstruktur aus Cache } # Baue Datenstruktur auf ... $c->write($ref); # schreibe Datenstuktur auf Cache return $ref; # liefere Datenstruktur }
Ein Objekt der Klasse verwaltet einen Cache. Der Cache ist ein Verzeichnis ($cacheDir) im Dateisystem. Eine Cachedatei speichert eine beliebige Datenstruktur. Diese wird von Storable geschrieben und gelesen. Die Datenstruktur darf ein Objekt (also geblesst) oder zirkulär sein. Die Cachdatei ist $duration Sekunden gültig. Danach ist sie ungültig und wird neu berechnet.
$cacheDir
Storable
Die Aufrufe read() und write() haben keine Wirkung, wenn $condition wahr ist. Damit kann das Caching für bestimmte Fälle abgschaltet werden.
$condition
Das Array @key besteht aus ein oder mehr einzelnen Werten, die zusammen den Schlüssel für die Cachdatei bilden. Der interne Schüssel ist der MD5-Hash über diesen Werten. Dieser bildet den Namen der Cachedatei.
Cachen einer HTML-Seite, die von einem einzigen Parameter $day abhängt:
my $day = $self->param('day') // $today; my $c = Quiq::Cache->new('~/var/html-cache',43_200,[$day], -inactive => $day eq $today, ); if (my $ref = $c->read) { $self->render(text=>$$ref); return; } my $html = ...HTML erzeugen... $c->write(\$html);
$c = $class->new($dir,$duration,\@key,@opt);
Verzeichnis, in dem die Cachdatei gespeichert wird.
Zeitdauer in Sekunden, die die Cachdatei ab ihrer Erzeugung gültig ist.
Die zur Bildung des Hash herangezogenen Werte.
Wenn wahr, ist der Cache inaktiv, d.h. $c->read() liefert immer undef und $c->write() hat keine Wirkung.
undef
Prefix, der der Cachedatei vorangestellt wird.
Cache-Objekt
Instantiiere ein Cache-Objekt und liefere eine Referenz auf dieses Objekt zurück.
$ref = $c->read;
Referenz auf Datenstruktur oder undef
Liefere eine Referenz auf die Datenstruktur in der Cachdatei oder undef. Wir liefern undef, wenn
der Cache inaktiv ist
die Cachdatei nicht existiert
die Cachdatei exisiert, aber älter ist als die Gültigkeitsdauer
$c->write($ref);
Referenz auf Datenstruktur.
Schreibe Datenstruktur $ref auf die Cachedatei.
1.189
Frank Seitz, http://fseitz.de/
Copyright (C) 2020 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.