2011-5-5
1、安装libevent
memcached需要用到socked,依赖此安装libevent。检查服务器系统版本
#lsb_release -a
CentOS release 5.5 (Final)
在安装之前需要安装gcc编译器
#yum install gcc
查看系统是否利用rpm源安装过libevent
rpm -qa|grep libevent
libevent-1.4.13-1
一般rpm源的软件比较旧,可以登录其网站下载最新稳定版本
http://monkey.org/~provos/libevent/
http://monkey.org/~provos/libevent-2.0.11-stable.tar.gz
现在最新稳定版本是2.0.11
在linux环境可以直接下载
#wget -c http://monkey.org/~provos/libevent-2.0.11-stable.tar.gz
在安装新版本之前
需要卸载原来默认安装的旧版本
#rpm -e libevent-1.4.13-1 --nodeps #忽略依赖删除
安装libevent
#tar -zxvf libevent-2.0.11-stable.tar.gz
#cd libevent-2.0.11-stable
#./configure
#make && make install
2、安装memcached
同理检查系统安装过
#rpm -qa | grep memcache
php-pecl-memcache-2.2.3-1.el5_2
查看现在memcached版本
这里可以把其扩展删除,用源码编译安装
#rpm -e php-pecl-memcache-2.2.3-1.el5_2
我们这里memcached采用源代码编译安装的方式进行
然后编译安装
http://memcached.org/
http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
下载资源
#wget -c http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
安装memcached
#tar -zxvf memcached-1.4.5.tar.gz
#cd memcached-1.4.5
#./configure
#make && make install
安装完成后再次查看
PS:
若要删除编译安装的版本,在源码包目录下
#make uninstall
或
#make clean
或
#make distclean 若都不提供,直接rm dir
新版本直接指定prefix,然后make && make install
3、当前用户的.bash_profile中添加环境变量
#vi ~/.bash_profile
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
4 安装memcached的PHP扩展
上面查看memcached的时候,已经安装其扩展。版本差异不大,我就用方便的方式,使用yum安装memcached的PHP扩展。
#yum install php-pecl-memcache
安装完以后可以使用下面命令查看其扩展模块是否安装完全
#php -m | grep memcache
memcache
未提示错误安装成功 版本2.2.3-1.el5_2
最后可以执行个php脚本测试,我在10.28.8.76上测试通过。
#vi test_memcached.php
<?php
$mem = new Memcache;
$mem->connect('10.28.8.76', 12000);
$mem->set('key', 'This is a memcache test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
#php test_memcached.php
This is a memcache test!
表明可以使用
5、启动memcached
升级后需kill原来进程,重新启动
#ps aux|grep memcache
root 14561 4.6 26.8 1130416 1057740 ? Ssl 11:00 8:24 /usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1000 -P /tmp/memcached.pid
#kill 14561
下面重新启动
#/usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1000 -P /tmp/memcached.pid
具体参数如下
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是1024MB
-u是运行Memcache的用户,当前为 root 的话,需要使用此参数指定用户。
-l是监听的服务器IP地址,如果有多个地址的话,这里指定服务器的IP地址10.28.8.76
-p是设置Memcache监听的端口,这里设置了12000
-c选项是最大运行的并发连接数,默认是1024,这里设置1000
-P是设置保存Memcache的pid文件
我在另一台服务器上,按指定路径安装后会提示以下错误,若不指定安装路径无问题。
/usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
查找错误位置
#LD_DEBUG=libs /usr/local/bin/memcached -v
9041: find library=libevent-2.0.so.5 [0]; searching
9041: search cache=/etc/ld.so.cache
9041: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path)
9041: trying file=/lib64/tls/x86_64/libevent-2.0.so.5
9041: trying file=/lib64/tls/libevent-2.0.so.5
9041: trying file=/lib64/x86_64/libevent-2.0.so.5
9041: trying file=/lib64/libevent-2.0.so.5
9041: trying file=/usr/lib64/tls/x86_64/libevent-2.0.so.5
9041: trying file=/usr/lib64/tls/libevent-2.0.so.5
9041: trying file=/usr/lib64/x86_64/libevent-2.0.so.5
9041: trying file=/usr/lib64/libevent-2.0.so.5
9041:
/usr/local/memcached-1.4.5/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
链接库
#ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
然后运行memcached
#/usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1024 -P /tmp/memcached.pid
无错误提示 OK
查看其状态
#echo stats | nc 10.28.8.76 12000
STAT pid 2845
STAT uptime 22208
STAT time 1304582476
STAT version 1.4.5
……
停止Memcache进程:
#kill `cat /tmp/memcached.pid`
6、memcached压力测试工具memslap的安装
要使用memslap需安装libmemcached,其将自带memslap的工具。
官方网站与下载地址 最新版
http://libmemcached.org/libMemcached.html
http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz
下载与安装
#wget -c http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz
#tar -xzvf libmemcached-0.49.tar.gz
#cd libmemcached-0.49
#./configure
#make && make install
安装完成后查看是否安装成功
#ls /usr/local/bin/memslap
/usr/local/bin/memslap
若存在则安装成功
查看memslap版本
#memslap -V
memslap v1.0