1 、安装 memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
Memcached 官网:http://memcached.org/
安装步骤:
1 、下载源码包:

wget http://www.memcached.org/files/memcached-1.4.20.tar.gz

2 、编译安装:

//确定 libevent 是否安装,centos 使用 yum
yum -y install libevent
tar -zxvf memcached-1.4.20.tar.gz
./configure --prefix=/usr/local/
make && make install
make clean

OK,Memcached 安装成功
启动 memcached
目标:使用 11211 端口、 www 用户、最大占用 16M 内存、 1024 个软连接,输出
客户端请求,以守护进程方式运行

/usr/local/bin/memcached -p 11211 -d -u www -m 16 -c 1024 -vvv
//查看是否启动
[root@AY120919111755c246621 ~]# ps -ef | grep memcache
www      18739     1  0 09:32 ?        00:00:00 /usr/local/bin/memcached -p 11211 -d -u www -m 12 -c 1024 -vvv

OK,Memcached 启动成功

2 、安装 memcache php 扩展

扩展官网:http://pecl.php.net/package/memcache
你可以查看最新稳定包 (stable) 下载:

 wget http://pecl.php.net/get/memcache-2.2.7.tgz

安装扩展:

 tar -zxvf memcache-2.2.7.tgz
 cd memcache-2.2.7
  /usr/local/php/bin/phpize
  ./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

安装成功后会显示你的 memcache.so 扩展的位置,比如我的:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

最后我们需要把这个扩展添加到 php 中,打开你的 php.ini 文件在最后添加以下内容:

[Memcache]
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension = memcache.so

添加完后 重新启动 php, 我使用的是 nginx+php-fpm 进程所以命令如下:

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

如果是 apache 的使用以下命令:

/usr/local/apache2/bin/apachectl restart

检查安装结果

/usr/local/php/bin/php -m | grep memcache

安装成功会输出:memcache

下载插件安装包:http://WordPress.org/extend/plugins/memcached/installation/
解压后将该文件 object-cache.php 复制到 wp-content,注意不是 wp-content/plugins/。
WordPress 会自动检查在 wp-content 目录下是否有 object-cache.php 文件,如果有,直接调用它作为 WordPress 对象缓存机制。

4 、 memcache 效果监控

我们安装 memcache 缓存后当然还要看下他的效果了,WordPress 效果监控非常简单只需要拷贝你下载的 memcache php 扩展包中的 memcache.php 文件到你的站点下即可:

cd memcache-2.2.7
cp memcache.php /data/www/yoursite

打开 memcache.php 文件

vim memcache.php
//修改四个地方 (以下注释部分),登陆用户名及密码及连接信息:
define('ADMIN_USERNAME','admin');   // 此处设置登录用户名
define('ADMIN_PASSWORD','123456');    // 此处设置登录用户密码
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);

$MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // 此处设置连接信息
//$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // 只使用一个进程,此处屏蔽,否则可以设置多个连接信息

修改后保存退出 memcache.php 文件。访问你的 memcache.php, 比如我的 http://www.wpnoob.cn/memcache.php, 当然密码就不是跟上面一样了。呵呵这些都可以自己设定,我们看下效果图标:
(备注运行一段数据后基本会达到 97% 以上的效率)

运行一段时间后,命中率提高了:

再过一段时间后查看,命中率又提高了,说明 memcache 还是很有效果的: