我正在使用.txt文件为自己创建一个缓存系统,不同的东西的缓存时间也不同,所以会更好:
(我使用“098f6bcd4621d373cade4e832627b4f6”作为测试md5哈希)
a)在几秒钟内将过期时间添加到文件名,如“098f6bcd4621d373cade4e832627b4f6-180.txt”(缓存限制为180秒)。
b)将到期时间添加到文件的第一行,然后从第2行开始添加缓存的内容。将文件命名为“098f6bcd4621d373cade4e832627b4f6.txt”。
使用a)我必须扫描整个目录并用“ - ”分解所有文件名,并检查explode [0]是否等于哈希值。
使用b)我可以使用file_exists()然后读取第一行以查看缓存是否仍然有效。
我应该使用哪种方式或有c)方式?
编辑:我不知道是否清楚,但我正试图找到性能最好的方式。答案 0 :(得分:0)
是的,第三种方式 - 甚至是第四种 - 使用一些数据库处理和unlink()
。
例如:
制作新的缓存文件时,请将文件名放在表格中,并提供截止日期。然后,当您执行脚本时,查看过期日期是否为现在,如果是,则取消链接文件。
第四种方式根本没有效率,但有效。
foreach(glob('files/*') as $file)
{
if(filemtime($file) < strtotime('-180 seconds'))
{
unlink($file);
}
}
我会选择你的第一个选项,但格式更好...... expirationDate_crc32hash.file。例如:180_127264de.txt
然后在_,使用strstr
或substr
答案 1 :(得分:0)
您是否可以创建文件夹(这将是唯一的ID?)然后在内部创建一个名为过期日期的文件?我认为这样可以实现最大的灵活性,对文件夹内的过期日期进行排序,并保留文件内部的实际内容。