Linux - 磁盘/文件系统作为 LRU 缓存(具有透明到期时间)

Linux - 磁盘/文件系统作为 LRU 缓存(具有透明到期时间)

我有这样一种情况,我想使用本地磁盘作为来自单独 Web 服务(如 S3)的(热门)文件的 LRU 缓存。如果文件不存在于磁盘上,则通过互联网读取该文件,将其写入本地磁盘,然后未来的请求可以使用本地缓存,而不是从原始源读取它。

由于存储在 Web 服务中的数据量将超过本地存储量,因此如果存储已满,我希望在写入新文件时自动透明地删除本地文件。如果可能的话,我希望避免使用 cron 任务检查 atime 并在一定时间后使文件过期的情况,因为如果没有文件正在写入,则没有特别的理由根据时间使缓存项过期。

我尝试寻找类似 tmpfs 的东西,它允许我尽可能透明地向使用缓存的应用程序实现类似于纯磁盘支持缓存(在 SSD 上)的东西,但我找不到任何实现此功能的东西(类似于 CacheFS 对 NFS 所做的,但以更通用的方式)。

答案1

如果你对 http 接口满意,你可以尝试使用 nginx 文件缓存。请参阅nginx 内容缓存

相关内容