将 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
我是 运行 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