Abgesehen vom eigentlichen Thema. Du schreibst darüber wie Du einen Cache serverseitig realisierst. Wozu eigentlich?
Schau mal, ein serverseitiger Cache optimiert allenfalls serverseitige Prozesse. Der Transport jedoch, der Dialog zwischen Client und Server bleibt davon unberührt. Letzeres ist jedoch genau das Thema um was es hier geht. So ist es der Client, der dem Server mitzuteilen hat, ob er einen bestimmten Inhalt bereits im Cache hat oder neu anfordern will.
Und es ist der Server welcher dem Client mitteilt, wann ein bestimmter Inhalt erstellt bzw. zuletzt geändert wurde. Diese Dialoge werden zwischen Client/Server über HTTP Header abgewickelt und grundsätzliches dazu lässt sich bereits am Webserver selbst konfigurieren.
So setzt der Apache spontan einen Last-Modified Header anhand der Angaben die er zur Datei aus dem Dateisystem findet. Oder er generiert spontan einen ETag anhand dieser Angaben. Vorausgesetzt, es ist so konfiguriert.
Mit dieser Spontanität ists jedoch vorbei wenn der Apache die Inhalte nicht aus dem Dateisystem liest sondern anderweitig bekommt. D.h., für solche Fälle zu regeln ist der Publisher zuständig. Wohlgemerkt: der Publisher, nicht der Programmierer serverseitiger Anwendungen, der setzt das nur um.
Und in diesen Dialog kann ein Benutzer jederzeit eingreifen. Er kann den Cache entleeren und er kann jederzeit veranlassen, daß eine Seite komplett neu vom Server angefordert wird. Einschließlich der darin verlinkten Ressourcen.
Wozu also möchtest Du da serverseitig cachen anstatt diese Standards zweckmäßgerweise einfach nur anzuwenden? Die, abgesehen davon auch völlig unabhängig davon existieren und funktionieren.
MfG