最近管理学书籍网站经常内存吃紧,所以准备试用下传说中的memcached缓存,据说可以大大提升MYSQL性能,进而节省内存。
先在http://news.12reads.cn/ 上试验下,OK了再扩展到其他网站(貌似使用后free -m内存和SWAP使用率都有所下降)。
下面是步骤。
1.首先是停用以前的w3totalcache插件。
2. cd 到lnmp1.2-full 目录下。
3.执行:./addons.sh install memcached (这是军哥lnmp内置的安装脚本,其他自己配置的环境,自己google安装方法吧)
可以根据自己的需求选择php-memcache或php-memcached扩展,目前discuz x使用的是前者,功能上php-memcached更强大一些。根据自己的情况选择是用1还是2,选择出错会导致网站空白哦。因为http://www.12reads.cn打算用高级点的,所以选择了memcached。
4.安装完成后我们来测试下是不是成功了,在你的网站根目录下新建个php文件,包含以下内容:
$m = new Memcached();
$m->addServer( '127.0.0.1', 11211 );
$m->set( 'foo', 100 );
echo $m->get( 'foo' ) . "\n";
是不是很简单?实例化一个memcached,然后赋值给foo,然后执行该文件,如果成功返回了foo的值‘100’,证明memcached已经成功安装并正常运行了,否则请返回重新安装。
5.到https://github.com/tollmanz/wordpress-pecl-memcached-object-cache上下载object-cache文件,然后上传至wp-content目录下。
6.在wp-config.php中添加:
global $memcached_servers;
$memcached_servers = array(
array(
'127.0.0.1', // Memcached server IP address
11211 // Memcached server port
)
);
7.至此已经完工了,我们再来测试下看是不是已经正常起作用了。
创建一个MU plugin(即wordpress must-used plugin,不会的自己GOOGLE),然后写入以下内容:
<?php
$key = 'dummy';
$value = '100';
$dummy_value = wp_cache_get( $key );
if ( $value !== $dummy_value ) {
echo "The dummy value is not in cache. Adding the value now.";
wp_cache_set( $key, $value );
} else {
echo "Value is " . $dummy_value . ". The WordPress Memcached Backend is working!";
}
然后刷新你的网站,刷新两次后查看源码,如果出现‘
Value is 100. The WordPress Memcached Backend is working!";
则说明memcached至此已经在你的WP上完全启用了。
最后,很重要的一点,关于memcached监控。
有两种方法,一种是通行命令行:
1).
telnet 127.0.0.1 11211
stats
然后就会列出缓存信息。
2)。第二种方法是到memcached官方下载一个监控工具http://pecl.php.net/get/memcache-3.0.8.tgz,解压后提取memcache.php上传到服务器,注意将mymemcache-server1:11211修改为:
127.0.0.1 11211
然后访问后即可看到缓存效果,http://www.12reads.cn/目前的情况如下:
目前来看命中率有点低哦,刚装好,继续观察吧!
本文参考了下列文章:
1.https://github.com/tollmanz/wordpress-pecl-memcached-object-cache
2.http://www.hankcs.com/appos/wordpress/wordpress-memcached-cache-acceleration.html
3.https://www.ezloo.com/2009/04/memcached_monitor.html
4.https://www.cmhello.com/lnmp-memcached.html