介绍

WP LCache 是 Pantheon(高性能管理型 WP 托管商)开发的 WordPress 对象缓存解决方案,其基于 Lcache 作为底层库,使用 APCu 作为对象缓存后端。

需求

Pantheon 的对象缓存解决方案本来先采用 Memcached 后来使用 Redis,但它们发现,两者都要通过 TCP/IP 进行通信,即便数据量很小但是请求一大的时候就会造成性能瓶颈,因此 Pantheon 转向研究 APCu 了。

APC/APCu 作为 WordPress 的对象缓存后端在高性能 WordPress 托管中是非常普遍的,例如MediaTemple 和其母公司 Godaddy 均采用 APC 作为 WP 对象缓存后端,Cloudways 也是用 APCu 作为默认对象缓存后端 等等。

说明

对于高流量的动态页面加载,就必须有一个高速持久的对象缓存,Pantheon 的 Lcache 是这样设计以便 APCu 可以拥有 Redis 一样的固化特性。

Lcache 分 本地 L1 缓存(APCu)和 中央 L2(数据库) 缓存(local L1 and central L2 caches) 当 PHP 重启(或者关闭后开机)的时候,会讲数据库的数据重新写入 APCu 即内存中实现缓存固化。

WP-Lcache 更好的 WP 对象缓存解决方案-米饭粑

Pantheon 给出的 New Relic 测试结果。 在介绍文档中,datacenter-local (but not host-local) 中使用 Lcache 比使用 Redis 减少 20% 的页面生成时间。

米饭粑的体验来看,使用 WP-Lcache 代替 Redis Object Cache 作为 WordPress 的对象缓存后,有非常可观的性能提升,至少是感觉的出后台加载速度提升的。

安装

要求: PHP 大于等于 5.6 ,APCu 4.0.11 或以上,PHP7 下性能表现更加。

一、下载 WP-Lcache 并上传,也可以在后台搜索 WP-Cache 安装。

二、激活插件

三、手动创建 wp-content/object-cache.php 文件,内容:

<?php
# Engage LCache object caching system.
# We use a 'require_once()' here because in PHP 5.5+ changes to symlinks
# are not detected by the opcode cache, making it frustrating to deploy.
#
# More info: http://codinghobo.com/opcache-and-symlink-based-deployments/
#
$lcache_path = dirname( realpath( __FILE__ ) ) . '/plugins/wp-lcache/object-cache.php';
require_once( $lcache_path );

四、WP-CLI 方式

如果安装失败了,可以考虑使用 WP-CLI(安装教程) 进行安装,运行即可:

wp plugin install wp-lcache --activate && wp lcache enable

五、没有额外的设置选项,这个插件式即开即用的,开启以后应该能明显感知到性能提升(服务器环境下)。