【问题标题】:Flush all cache in Laravel 4在 Laravel 4 中刷新所有缓存
【发布时间】:2013-09-24 21:49:10
【问题描述】:

有没有办法在 Laravel 4 中刷新所有缓存?我正在使用 file 进行缓存。我在文档上看到您可以使用 Cache::forget('key') ,但是如果我需要删除所有缓存怎么办?

artisan 命令也很有用,我认为 repo 有问题,但不确定它是否已经实现。

谢谢!

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    使用,

    use Doctrine\Common\Cache\CacheProvider as DoctrineCache;
    
    DoctrineCache::flushAll();
    

    刷新所有缓存。

    【讨论】:

    • 在 vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php 中可用
    【解决方案2】:

    如果你运行php artisan list,那么你可以找到所有可用于artisan的命令,无论如何,有一个命令可以清除cache,它是

    php artisan cache:clear
    

    你也可以使用

    foreach (Cache::getMemory() as $cacheKey => $cacheValue)
    {
    
        Cache::forget($cacheKey);
    }
    

    更新:

    Cache::flush();
    

    【讨论】:

    • 在我写这篇文章的时候,你可以使用 Cache::flush() 无论你使用什么驱动程序。请参阅Laravel API Cache
    • php artisan cache:clear 在 FileStore 缓存的情况下可能并不总是有效,因为正在执行 artisan 命令的用户可能没有对缓存文件/目录的写入权限。通常缓存文件是由 webserver 用户创建的,该用户不一定与您用于运行 artisan 的用户相同。
    • 谢谢@anonymous,我会记住你的建议,我很高兴你提到你投了反对票,因为经常有些人匿名投反对票,这让我很困惑。 :-)
    【解决方案3】:

    Illuminate\Cache\FileStore具有flush的功能,所以你可以使用:

    Cache::flush();
    

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 2010-09-28
      • 2017-11-25
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多