参考:http://blog.bwphp.cn/?p=296
Magent代理服务器:192.168.1.6
Memcache服务器:192.168.1.7
Memcache服务器安装配置:
首先:配置本地YUM源,挂载光驱,安装编译器
yum install gcc gcc-c++
1、编译安装libevent:
wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz tar zxvf libevent-1.4.9-stable.tar.gz cd libevent-1.4.9-stable/ mkdir /usr/local/libevent ./configure --prefix=/usr/local/libevent make && make install
2、编译安装Memcached:
wget http://danga.com/memcached/dist/memcached-1.2.6.tar.gz tar zxvf memcached-1.2.6.tar.gz cd memcached-1.2.6/ mkdir /usr/local/memcached ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent make && make install
3、启动memcached服务器:
/usr/local/memcached/bin/memcached -m 100 -u root -d -l 127.0.0.1 -p 11211
在启动memcached时报错:/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
解决方案:
1. 首先 find / -name libevent-1.4.so.2 找到缺少的链接文件到底在那儿。
2. LD_DEBUG=libs /usr/local/bin/memcached -v
3. 做一个软连接 ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
就ok了!
memcache代理服务器magent安装配置(192.168.1.6):
1、 magent是一款开源的Memcached代理服务器软件,其项目网址为:http://code.google.com/p/memagent/ 目前最新版本为0.6
2、 安装,先配置本地源,挂载光驱,安装编译器
Yum install gcc gcc-c++ libgnomeui-devel
3、 编译安装libevent:
wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz //下载安装libevent tar zxvf libevent-1.4.9-stable.tar.gz cd libevent-1.4.9-stable/ mkdir /usr/local/libevent ./configure make && make install
4、安装magent
mkdir /usr/local/magent cp ./magent-0.6.tar.gz /usr/local/magent cd /usr/local/magent tar xzvf ./magent-0.6.tar.gz /sbin/ldconfig sed -i "s/LIBS = -levent/LIBS = -levent -lm/g" Makefile make
magent.c:729: 错误:‘SSIZE_MAX’未声明(在此函数内第一次使用)
magent.c:729: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
magent.c:729: 错误:所在的函数内也只报告一次。)
make: *** [magent.o] 错误 1
解决方案:
#在ketama.h开头加入(过滤掉特殊字符)
#ifndef SSIZE_MAX #define SSIZE_MAX 32767 #endif
继续make
cp magent /usr/bin/
启动memagent:
/usr/bin/magent -u root -n 4096 -l 192.168.1.246 -p 12000 -s 192.168.1.247:11211 -b 192.168.1.249:11211
PHP开启扩展php_memcache.Dll注意版本的问题:
//phpinfo(); //查看扩展是否开启 $mem = new Memcache(); //直接连接代理服务器 $mem->connect('192.168.1.246',12000) or die('connect fail!<br>'); echo "connect success!<br>"; for($i=0;$i<10;$i++){ if($mem->set('key'.$i , 'data'.$i , 0 , 3600)){ echo "set ok!"; }else{ echo "set false!"; } }
报错提示:
Notice: Memcache::set(): Server 192.168.1.246 (tcp 12000) failed with: Failed reading line from stream (0)
原因是:代理magent没有连接到memcached服务器
解决方案:
启动memcached的时候,不能使用 –l 127.0.0.1或者-l localhost,要设置当前IP
/usr/local/memcached/bin/memcached -m 100 -u root -d -l 192.168.1.247 -p 11211
memcached的一些参数:
-d install 安装memcached
-d uninstall 卸载memcached
-d start 启动memcached服务
-d restart 重启memcached服务
-d stop 停止memcached服务
-d shutdown 停止memcached服务
检查服务:
1、查看启动的memcache服务:
netstat -lp | grep memcached
2、查看memcache的进程号(根据进程号,可以结束memcache服务:“kill -9 进程号”)
ps -ef | grep memcached