服务端缓存在WEB开发中是比较常采用的一种提高服务性能的方法,可以提高了服务的运行效率,因此一些大规模的Web应用,常常构建一个庞大的服务端缓存,比较常使用的就是Memcached。下面就简单谈谈wordpress如何开启Memcached内存缓存。
一、什么是Memcached 内存缓存
memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
二、Memcached 的 PHP 扩展
PHP 有两个 Memcached 扩展:“PHP Memcache 扩展” 和 “PHP Memcached 扩展”,这就是是我们搞混的地方。
PHP Memcache 扩展用 PHP 实现的,支持面向对象和面向过程两种接口,2004年就实现了,是老的扩展,而且功能少,属性也可设置的少。
PHP Memcached 扩展基于 libmemcached 开发的,使用 libmemcached 库提供的 API 与 Memcached 服务进行交互,只支持面向对象的接口,2009年才实现,Memcached 扩展功能更加完善,支持的函数更多,比如支持批量操作,现在一般建议使用 Memcached 扩展。
下面是一个支持功能对照列表:
对比项 | Memcache | Memcached |
---|---|---|
发布日期 | 2004-06-08 | 2009-01-29 (beta) |
仍在维护? | Yes | Yes |
第三方依赖 | None | libmemcached |
Key自动修复 | Yes | No |
Append/Prepend | No | Yes |
自动序列化 | Yes | Yes |
二进制协议 | No | Optional |
CAS | No | Yes |
压缩 | Yes | Yes |
超时设置 | Connect Only | Various Options |
一致性哈希 | Yes | Yes |
延迟Get | No | Yes |
Multi-Get | Yes | Yes |
Session支持 | Yes | Yes |
指定Server get/set | No | Yes |
数字存储 | Converted to Strings | Yes |
支持长连接? | Yes | Yes |
三、WordPress 和 Memcached
由于 WordPress 默认支持 Object Cache,所以在 WordPress 实现 Memcached 就是使用 Memcached 把 WordPress 的 Object Cache 写到内存中去,下次直接从内存中读取。相比直接从数据库去读取数据,或者从 Object Cache 数据存到文件,然后从硬盘中读取,Memcached 有很大的速度优势。
三、WordPress 如何启用 Memcached 缓存
说明:必须同时安装 Memcached 服务端和其 PHP 扩展。
如果安装了 Memcached 服务端不安装扩展,那么 PHP 无法操控 Memcached。同样如果安装了 PHP Memcached 扩展,但是没有安装 Memcached 服务端,那么这个就无法使用。
1. 需要你的服务器支持,就是你的 PHP 需要安装上 Memcached 扩展。一般情况下是没有安装的,比较如果你使用的宝塔管理面板,可以到PHP管理里面找到相关的插件下载,如下图:
2. 下载 WordPress Memcached 插件:http://wordpress.org/extend/plugins/memcached/。
3. 把下载的:object-cache.php
复制到 wp-content
,注意不是 wp-content/plugins/
。
4. WordPress 会自动检查在 wp-content
目录下是否有 object-cache.php
文件,如果有,直接调用它作为 WordPress 对象缓存机制。
注:部分内容来自于我爱水煮鱼博客(老牌wordpress博客站点)。