php - Laravel 4 清除所有过期缓存

标签 php caching laravel-4

在 Laravel 中,我们可以这样存储缓存:

Cache::put($dynamickey, 'value', $minutes);

但这最终会存储越来越多的缓存文件,即使它已过期。如果我们尝试使用 php artisan cache:clear 清洁它或 Cache::flush(); ,它将清除所有缓存,包括那些仍然有效的缓存。

是否可以进行仅清除过期缓存的自动清理?谢谢。

最佳答案

$value = Cache::remember('users', function()
{
    return DB::table('users')->get();
});

工作。它验证具有给定键的缓存是否存在并返回其值。如果它不存在或已过期,则使用新值刷新给定的缓存键。

对于图像缓存,我使用如下逻辑:
  • 撕裂图像 md5($file);//其中 $file === 完整图像路径
    图片名称
  • 存储图像 md5(file_get_contents($file));//自我解释方法:)
  • 然后

    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/

    相关文章:

    javascript - 将 php 中的标记添加到 map 中

    php - 插入无值

    c++ - QTextDocument:如何从缓存中删除资源

    http - 更正 HTTP 响应 header 以在内容过期后导致 304

    apache - 重写文件路径中的 RewriteRule 检查文件是否存在

    php - Laravel artisan 迁移错误

    找不到 Laravel 4 播种类哨兵

    php - 在没有数据库的情况下使用 Laravel

    php - 如何将 Google 搜索结果重定向到动态网页?

    php - Laravel 4 验证被破坏