将 Redis 用于 Symfony /var/cache 和 /var/logs

Using Redis for Symfony /var/cache and /var/logs

我是 运行 Symfony 3.* Homestead 中的 PHP 7.1 实例,最近将缓存和日志目录从我的主文件夹中移开,因为 NFS 同步变得疯狂并且大大减少整个安装的性能。

我想知道我是否可以通过配置或解决方法以某种方式将通常去 ./var/ 的日志记录和缓存完全分派给 Redis?

您可以修改日志记录以将其关闭或关闭 - 或者选择不将其写入文件,而是将其发送到 Redis 或其他来源。 Monolog 可以使用许多可选目标,通常带有支持库和配置。

虽然缓存文件并非设计用于写入其他地方。因为它们被写入磁盘,所以它们可以被 OpCache 缓存。

但这并不意味着 var/* 必须写入真实磁盘。如果你有共享内存,要用作ram-disk(也称为tmpfs)。可以很容易地更改应用程序以使用它 - 用于缓存 and/or 日志文件:

class AppKernel extends Kernel
{
    // ...

    public function getCacheDir()
    {
        if (in_array($this->environment, array('dev', 'test'))) {
            return '/dev/shm/appname/cache/' .  $this->environment;
        }
        return parent::getCacheDir();
    }

    public function getLogDir()
    {
        if (in_array($this->environment, array('dev', 'test'))) {
            return '/dev/shm/appname/logs';
        }
        return parent::getLogDir();
    }
}

来源:http://www.whitewashing.de/2013/08/19/speedup_symfony2_on_vagrant_boxes.html via