elcobvg/laravel-opcache

Laravel的定制OPcache缓存驱动。比Redis或memcached更快。

0.5.0 2021-11-28 08:30 UTC

This package is auto-updated.

Last update: 2024-09-28 14:07:02 UTC


README

Laravel的定制OPcache缓存驱动。比Redis、Memcache或APC更快。

此包为您的Laravel项目添加了一个缓存驱动,该驱动使用PHP引擎的内存文件缓存(OPcache)来缓存应用数据。

由于所有这些解决方案都必须序列化和反序列化对象,因此这种方法比Redis、Memcache、APC和其他PHP缓存解决方案更快。通过在请求之间将PHP对象存储在文件缓存内存中,该驱动程序可以完全避免序列化!

安装

使用Composer要求此包。

composer require elcobvg/laravel-opcache

Laravel 5.5使用包自动发现,因此不需要手动添加ServiceProvider。

如果您不使用自动发现或Laravel版本为5.4或更低版本,请将ServiceProvider添加到config/app.php中的providers数组中

ElcoBvg\Opcache\ServiceProvider::class,

然后,请确保您将驱动程序选项添加到config/cache.php中的stores数组中

    'opcache' => [
        'driver' => 'opcache',
    ],

并在您的.env文件或config/cache.php中启用驱动程序

OPcache配置

OPcache只能编译为共享扩展。您必须使用--enable-opcache选项编译PHP,以便OPcache可用。

OPcache必须在php.ini中启用并配置。查找以[OPcache]开头的部分并输入所需的值。您可以分配给OPcache的内存越多,您的缓存速度就越快。opcache.max_accelerated_files的值应足够高,以存储所有需要缓存的对象。

由于所有PHP文件都将通过OPcache进行缓存,因此在开发环境中不建议使用它,所以只在生产环境中启用。或者,您可以通过指定带有opcache.blacklist_filename选项的黑名单文件来排除PHP文件被缓存。

  opcache.enable=1
  opcache.memory_consumption=512
  opcache.interned_strings_buffer=64
  opcache.max_accelerated_files=32500
  opcache.validate_timestamps=1
  opcache.save_comments=1
  opcache.revalidate_freq=60
  opcache.fast_shutdown=1
  opcache.enable_cli=1

优雅降级:当OPcache未启用或安装,或者内存不足时,此驱动程序仍然可以工作,但将读取缓存文件而不是内存。由于不需要反序列化,它仍然比常规文件缓存驱动程序更快。

缓存Eloquent模型

根据您在项目中配置的缓存方式,您可能想缓存完整的Eloquent模型。如果是这样,请将模型类基于ElcoBvg\Opcache\Model而不是常规Eloquent基模型类,以便可以从缓存中正确检索它们。

参考资料