我在 Linux 中有一个很好的缓存系统,它使用 ramdisk 来缓存图像文件和我网站各个页面的 HTML 输出。
我的网站相当大,缓存所有内容所需的 ramdisk 空间超过 15GB(不包括图像输出),而我只有 2GB 可用于缓存。
写入和读取缓存相对较快,但问题是当我用完空间时,如何快速找到最陈旧的文件,以便为新文件腾出空间。我相信使用“ls -R”并扫描大输出是一个缓慢的过程。
我唯一的另一个低效选择是经常刷新整个缓存,以免耗尽 ramdisk 空间。
我的缓存允许我的网站加载许多页面,首字节时间 (TTFB) 低于 200 毫秒,这是 Google 所喜欢的,因此我想在从缓存加载文件时尝试将 200 毫秒保留为最大 TTFB 值,即使文件由于缺少 ramdisk 空间而被删除。
我想过通过缓存指针直接访问内存,但由于缓存的输出大小不同,我觉得该选项最多会浪费内存空间或使用大量CPU来查找下一个空闲内存位置。
有人知道如何快速查找然后从缓存中删除最旧的文件吗?
最佳答案
使用 ramdisk 时,ls -latr 不应太慢。但这可能更接近您正在寻找的内容:
find -type f -printf '%T+ %p\n' | sort | head -1
关于linux - 在 ramdisk 上缓存 - 查找要删除的最旧文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331023/