在 Laravel 中,我们可以这样存储缓存:
Cache::put($dynamickey, 'value', $minutes);
但这最终会存储越来越多的缓存文件,即使它已过期。如果我们尝试使用
php artisan cache:clear
清洁它或 Cache::flush();
,它将清除所有缓存,包括那些仍然有效的缓存。是否可以进行仅清除过期缓存的自动清理?谢谢。
最佳答案
$value = Cache::remember('users', function()
{
return DB::table('users')->get();
});
工作。它验证具有给定键的缓存是否存在并返回其值。如果它不存在或已过期,则使用新值刷新给定的缓存键。
对于图像缓存,我使用如下逻辑:
图片名称
if (Cache::has($cacheKey_name) && !Cache::has($cacheKey_content))
{
缓存::忘记($cacheKey_name);
缓存::忘记($cacheKey_content);
}
它将检查图像是否已缓存并且仅更改内容。如果是,则删除旧缓存并缓存新图像(带有新内容)。使用此逻辑,您将始终拥有新鲜的图像内容(带有覆盖的图像)。
或者,您可以随时创建 artisan 任务并创建 Controller 来检查存储目录中的所有缓存数据,然后创建 Cron 任务。
关于php - Laravel 4 清除所有过期缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111229/