.png)
Ich habe einen Fall, in dem ich die lokale Festplatte als LRU-Cache für (heiße) Dateien von einem separaten Webdienst (etwa S3) verwenden möchte. Wenn die Datei nicht auf der Festplatte vorhanden ist, wird sie über das Internet gelesen, auf die lokale Festplatte geschrieben und zukünftige Anforderungen können dann den lokalen Cache verwenden, anstatt sie aus der Originalquelle zu lesen.
Da die im Webdienst gespeicherte Datenmenge den lokalen Speicher übersteigt, möchte ich lokale Dateien automatisch und transparent löschen, wenn eine neue Datei geschrieben wird, wenn der Speicher bereits voll ist. Wenn möglich, möchte ich eine Situation vermeiden, in der ich eine Cron-Aufgabe habe, die atime überprüft und Dateien nach einer bestimmten Zeit ablaufen lässt, da es keinen besonderen Grund gibt, Cache-Elemente zeitabhängig ablaufen zu lassen, wenn keine Dateien geschrieben werden.
Ich habe versucht, etwas wie tmpfs zu finden, mit dem ich etwas Ähnliches wie einen rein festplattengestützten Cache (auf SSDs) so transparent wie möglich für die Anwendung implementieren kann, die den Cache verwendet, aber ich konnte nichts finden, das diese Funktionalität implementiert (ähnlich dem, was CacheFS für NFS tut, aber auf allgemeinere Weise).
Antwort1
Sie könnten versuchen, dafür nginx-Dateien zwischenzuspeichern, wenn Sie mit der HTTP-Schnittstelle einverstanden sind. SieheNginx Inhalts-Caching.