我有一個例子,我想使用本機磁碟作為來自單獨 Web 服務(例如 S3)的(熱)檔案的 LRU 快取。如果磁碟上不存在該文件,則透過互聯網讀取該文件,並將其寫入本地磁碟,然後將來的請求可以使用本地緩存,而不是從原始來源讀取該文件。
由於儲存在網路服務中的資料量將超過本機存儲,因此如果儲存已滿,我希望在寫入新檔案時自動且透明地刪除本機檔案。如果可能的話,我想避免這樣的情況:我有一個 cron 任務來檢查 atime 並在一定時間後使文件過期,因為如果沒有寫入文件,則沒有特殊原因根據時間使快取項目過期。
我嘗試找到類似 tmpfs 的東西,它允許我對使用快取的應用程式盡可能透明地實現類似於純磁碟支援的快取(在 SSD 上)的東西,但我一直找不到任何實現此功能的東西(類似於CacheFS 對NFS 的作用,但採用更通用的方式)。
答案1
如果你對 http 介面沒問題的話,你可以嘗試 nginx 檔案快取。看nginx 內容快取。