启用APCu对象缓存优化加速WordPress网站

APCu(Alternative PHP Cache User)是 PHP 的内存缓存系统,用于存储数据以便快速检索。它是 APC(Alternative PHP Cache)的简化版本,专为 PHP 应用程序中的对象缓存而设计。配置操作简单,与PHP无缝对接,且相对Redis服务器负载要求更低,速度更快。本文老白博客就简单谈谈在宝塔面板环境下,WordPress网站如何启用APCu优化加速以及APCu Manager插件的使用方法。

启用APCu对象缓存优化加速WordPress网站

1.APCu简单介绍

APCu是php进程开辟出来的一块共享内存空间,不同php进程访问apcu就像访问自己进程中的数据一样,而redis是需要走网络请求的,访问内存的速度大概在纳秒级别 ,网络请求的速度在毫秒级别,同机架或同机房的机器可能在1/10ms左右,还不是考虑服务稳定、网络稳定的情况下。

1.1 优点

  • 简单:APCu 的安装和配置相对简单。它与 PHP 无缝集成,不需要额外的服务器基础设施。
  • 性能:作为内存缓存,APCu 提供快速的数据访问速度并显著提高 PHP 应用程序的性能。
  • 低开销:APCu 重量轻且不消耗太多资源,适合小型到中型 WordPress 安装。

1.2 缺点

  • 单服务器限制: APCu 仅在单台服务器上运行,因此不适合多服务器环境。
  • 没有高级功能: APCu 缺乏 Redis 提供的高级功能和数据结构支持。
  • 没有数据持久性:与 Memcached 一样,APCu 不提供数据持久性,因此服务器重启时所有缓存数据都会丢失。

2. APCu和redis读写测试

简单的对redis和APCu进行一下读取和写入测试。

$start = microtime(true);
// 写入apcu数据
for ($i=0;$i<100000;$i++) {
    $res = apcu_add('1aa'.$i, '1', 1000);
}
$end = microtime(true) - $start;
print_r("Apcu写入耗时:".$end. PHP_EOL);

$start = microtime(true);

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// 写入redis数据
for ($i=0;$i<100000;$i++) {
    $res = $redis->set('1aa'.$i, '1');
}
$end = microtime(true) - $start;
print_r("Redis写入耗时:".$end. PHP_EOL);

测试结果

APCu写入100000次耗时:0.7秒
Redis写入100000次耗时:8.9秒
APCu读取100000次耗时:0.7秒
Redis读取100000次耗时:8.7秒

该测试基于redis部署在我本机,基本没有网络开销的情况下,APCu的读和写的速度都是redis的12倍,如果再加上网络开销,那速度差距只会更大。

(本测试选自:https://tech.qimao.com/qian-tan-phpxing-neng-you-hua-apcu/)

3.宝塔PHP安装启用APCu

对于非宝塔面板,请参照:https://www.php.net/manual/zh/book.apcu.php

3.1 安装APCu

如下图,打开PHP,选择安装拓展

感谢不凡提示,只有PHP8.1及其以上版本才支持安装apcu

启用APCu对象缓存优化加速WordPress网站

3.2 APCu配置

打开PHP.ini,或者直接选择PHP——配置文件

官方说明:https://www.php.net/manual/zh/apcu.configuration.php

下面介绍几个常用的:

  • apc.enabled:启用或禁用 APCu。设置为1表示启用,设置为0表示禁用。默认值为1
  • apc.shm_segments:为编译器缓存分配的共享内存段数量。默认为1
  • apc.shm_size:共享内存大小。默认值为32M
  • apc.ttl:缓存对象的生命周期(以秒为单位)。默认值为0,表示永不过期
  • apc.enable_cli:是否启用 APCu 的 CLI 模式。1表示启用,0表示禁用。默认值为0
注意:
两个独立的 cli 进程不共享,cli 下命令结束则该进程结束,缓存清除

3.3 GUI图形界面(可选)

apc.php拷贝到项目中就能查看

apc.php获取方式:

https://github.com/krakjoe/apcu 找到apc.php并下载

图形效果:

启用APCu对象缓存优化加速WordPress网站

其中关键信息:

  • Cached Variables key数量及大小
  • Hits  缓存总命中次数
  • Misses 缓存总未命中次数
  • Runtime Settings 运行时配置
  • Host Status Diagrams  内存占用饼图和命中与未命中柱状图

4. WordPress安装APCu插件

通过搜索WordPress插件市场可以发现,支持APCuc的插件还是很多的,老白推荐选择安装量大且更新较快的APCu Manager。

启用APCu对象缓存优化加速WordPress网站

安装后直接启用即可,主要的就是管理中心和缓存内容分析两部分

启用APCu对象缓存优化加速WordPress网站

5.老白有话说

对于我的网站影响不太大,相差就是100-200ms的加载,大家可以根据自己的网站选择合适的对象缓存即可。

一文解读WordPress网站的各类缓存

5.1 memcached

比较适合小流量站,博客,教程见

纯代码免插件优化WordPress6.3实现0sql-强化拓展

5.2 Redis

通用的对象缓存,特别适合大流量,技术成熟。

简单实现Redis缓存优化加速WordPress网站

5.3 nginx fastcgi

fastcgi较为麻烦,生态没有mem和redis完善,但是速度上几乎可以算最快的

支持NGINX FastCGI缓存清除的三大WordPress插件

5.4 apcu

APCu不是太了解,老白没有大流量站来测试,用在小博客也挺Happy的,目前我的网站就是apcu

更多WordPress优化教程可点击底部标签阅读!