php缓存技术有哪些

PHP的运行速度非常快,而随着PHP 7的发布,它的运行速度大大提高,有时平均速度是PHP 5.5的2倍。HHVM有时甚至更快。也就是说,缓存对于PHP应用程序的速度至关重要。

OPCache

OPCache是​​一种特殊的缓存机制,用于存储PHP文件的预编译版本。执行后,一个PHP文件被编译为字节码,一旦完成此过程,字节码便被执行。

99.9%的操作码在几天之内是相同的,因为一个文件可能几个月都不会更改,并且默认情况下,PHP每次都会重新编译一次。

为了改善这一点,请使用OPCache。OPCache通过将预编译的脚本字节码存储在共享内存中来提高PHP的性能,而无需PHP在每个请求上加载和解析脚本。

自PHP 5.5起,它已捆绑在内核中,只需安装它即可使我们获得极大的速度改进,而不必使用它。

OPCache documentation

APCu

APCu是没有操作码缓存的旧式APC,现在由OPCache正式提供。它是一个用户缓存,这意味着您的PHP代码必须显式地使用它才能利用它,而OPCache在安装后就可以完成所有工作。

当执行昂贵的操作(如读取文件或获取网络资源)时,可以将结果存储在用户缓存中,以加快以后对同一对象的请求。

APCu的唯一缺点是,它对运行它的计算机是本地的,对PHP流程和系统是本地的。
这意味着如果您将PHP用作FastCGI进程(例如Nginx和php-fpm),则每个PHP进程都会拥有自己的缓存。

除非您希望在多个服务器或进程上运行您的应用程序,否则就可以了。否则,Memcached和Redis可能是一个很好的解决方案。

Using APCu

<?php
function getData() {
    $data = apc_fetch('some_data');
    if ($data === false) {
        $data = $this->getSomeData();
        apc_add('some_data', $data);
    }
    return $data;
}
?>

APC, XCache, Memcached, Redis

由于OPcache现在是内置的,并且键值缓存现在是APCu的一部分,因此APC不再重要。不再建议使用XCache,请改用APCu。Memcached和Redis可以替代APCu,在独立系统上不太方便,因为它们必须单独设置,与APCu相比并没有真正的优势,但是如果您运行多个PHP进程或设置系统网络(它们都可以依靠)则非常方便在中央缓存位置上。

HTML5信息推送
GraphQL介绍
Tags:,