phpbar.de logo

Mailinglisten-Archive

[pear] USERLAND CACHE

[pear] USERLAND CACHE

Kristian Koehntopp kk at netuse.de
Fre Jan 31 10:24:34 CET 2003


On Thursday 23 January 2003 17:57, John Behrens wrote:
> Habe überlegt die
> REQUEST_URI als cache key zu verwenden,

So einfach ist es leider nicht.

Ersten sollte die Session ID nicht Bestandteil des Cache Key sein, wenn sie es
nicht muß. Zweites sollte der Cache Key canonical sein, also sollten zum
Beispiel http://lall.de?a=1&b=2 und http://lall.de?b=2&a=1 denselben Cache
Key erzeugen. Wenn Deine Variablen case insensitive sind, sollte sogar
http://lall.de?A=1&B=2 denselben Cache Key erzeugen. Und drittens sollten
Teil der URI, die das Aussehen der Seite nicht beeinflussen, auch nicht
Bestandteil des Cache Key werden (wenn also ...&submit=Los%21 das Aussehen
der Seite nicht beeinfluß, sollte es auch nicht in den Key mit eingehen).

Nur auf diese Weise minimierst Du die Cache Größe und maximierst Du den Nutzen
des Cache (minimierst die Anzahl der Seiten-Neuberechnungen).

Anders herum ist es so, daß unter Umständen Dinge in die Seite mit eingehen,
die sich nicht in der REQUEST_URI niederschlagen, etwa die filemtime() des
Content, oder ein changed timestamp-Wert in der Datenbank und andere
Eigenheiten. Diese Dinge müssen Bestandteil vom Cache Key werden.

Du wirst nicht umhin kommen, Deine Anwendung zu analysieren und Dir eine Art
virtuelle Seitengenerierungsfunktion vorzustellen. Deren Parameter sind ALLE
Parameter, die das Aussehen einer Seite beschreiben, und alle diese Parameter
müssen (in kanonischer Form und Reihenfolge) in den Cache Key eingehen.

Kristian

--
Kristian Köhntopp, NetUSE AG, Dr.-Hell-Straße, D-24107 Kiel
Tel: +49 431 386 435 00, Fax: +49 431 386 435 99


php::bar PHP Wiki   -   Listenarchive