标签 "memcached" 下的文章

1、安装memcached

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

wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz

2、编译安装:

//确定libevent是否安装,centos使用yum
yum -y install libevent
tar -zxvf memcached-1.4.15.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
//查看是否启动

[piaoyuncc@piaoyun.cc ~]# 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

延伸阅读:Windows Server 2008 R2 64Bit下IIS环境安装memcache和memcached服务端

3、添加wordpress 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/piaoyun.cc/

打开 memcache.php文件

//修改四个地方(以下注释部分),登陆用户名及密码及连接信息:
define('ADMIN_USERNAME','piaoyuncc'); // 此处设置登录用户名
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://piaoyun.cc/memcache.php,当然密码就不是跟上面一样了。呵呵这些都可以自己设定,我们看下效果图标:(备注运行一段数据后基本会达到97%以上的效率)
01

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

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

如果IIS+PHP的环境下需要memcache的缓存支持。需要安装服务端和客户端呢!

一、安装memcached服务端

1、首先下载memcached的服务端,下面的下载地址包含了32位和64位的,大家可以参考自己的系统来下载:
下载地址:
百度网盘:http://pan.baidu.com/s/1ntyswWh 密码: mf6a
360云盘:http://yunpan.cn/cAbMcyMNxa8NB 提取码:4c21

这下是windows下的版本,安装要在命令行下安装
解压到C盘或其他盘都可以,如我的是D盘memcached目录,然后进入cmd命令行,如下:

Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>d:

D:\>cd memcached144

D:\memcached144>memcached.exe -d install (安装为服务)

D:\memcached144>memcached.exe -d start (启动)

C:\memcached44>

这样就可以在进程里面看到memcache.exe进程。这样每次启动时都会自动启动

Memcached还有其他的一些常用的命令如下:

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

按照上面的安装步骤安装之后,使用memcached -m 200来调整最大内存占用之后会发现没有起作用,总是默认的64MB的内存,在网上搜了一下,原因是注册表中并没有写入信息,可以这样来修改。

1. memcached -d shutdown 首先关闭memcached服务。

2.进入注册表,找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server

在其中有一个ImagePath项,值为"d:\memcached144\memcached.exe" -d runservice,在后面加上

-p 11211 -l 127.0.0.1 -m 256 -c 2048

二、安装memcache客户端

2.下载php版本对应的php_memcache.dll (我这里使用的php版本是:php-5.4.15-nts-Win32-VC9-x86.zip)
下载地址:
百度网盘:http://pan.baidu.com/s/12c77o 密码: etht
360云盘:http://yunpan.cn/cAbkbALRUkT6Z 提取码:adbd
官方地址:http://pecl.php.net/package/memcache/3.0.8/windows

然后解压,复制里面的php_memcache.dll到你php的ext目录下,如我的是
d:\php\ext”目录,为了php加载php_memcache.dll

3、配置php.ini
在PHP的配置文件中:php.ini 的底部加上以下的代码:

[memcache]
extension = php_memcache.dll

4.重新启动IIS,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
测试:

<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>

三、Memcached 管理监控工具

1.MemAdmin
下载地址:
百度云盘:http://pan.baidu.com/s/1hquyMCO 密码: 46bk
360网盘:http://yunpan.cn/cAbkXUnqEwaXW 提取码:1090
官方下载:http://www.junopen.com/memadmin/