У меня есть случай, когда я хочу использовать локальный диск в качестве кэша LRU для (горячих) файлов из отдельного Интернета сервис (что-то вроде S3). Если файл не существует на диске, файл читается через Интернет, записанные на локальный диск, а затем будущие запросы могут использовать локальный кеш вместо чтения его из исходного источника.
Поскольку объем данных, хранящихся в веб-службе, будет превышать локальное хранилище, я хочу автоматически и прозрачно удалять локальные файлы при записи нового файла, если хранилище уже заполнено. Если возможно, я бы хотел избежать ситуации, когда у меня есть задача cron, которая проверяет время и удаляет файлы через определенное время, поскольку нет особой причины истекать элементы кеша на основе времени, если файлы не записываются.
Я попытался найти что-то вроде tmpfs, которое позволяет мне реализовать что-то похожее на чисто дисковый кеш (на SSD) максимально прозрачно для приложения, которое использует кеш, но я ' Мне не удалось найти ничего, что реализует эту функцию (аналогично тому, что CacheFS делает для NFS, но в более общем виде).
Вы можете попробовать кеширование файлов nginx для этого, если вас устраивает http-интерфейс. См. nginx content-caching .