参考: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
转载于:https://blog.51cto.com/pilipala/1649708