介绍
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 即内存中实现缓存固化。
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
五、没有额外的设置选项,这个插件式即开即用的,开启以后应该能明显感知到性能提升(服务器环境下)。