> CentOS > CentOS教程 >

CentOS安装Memcache

下载并安装Memcache服务器端  
服务器端主要是安装memcache服务器端.  
下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz  
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统  
  
已经安装了libevent,可以不用安装)  
官网:http://www.monkey.org/~provos/libevent/  
下载:http://www.monkey.org/~provos/libevent-1.3.tar.gz  
  
用wget指令直接下载这两个东西.下载回源文件后。  
1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure –prefix=/usr;然后make;然后make install;  
2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure –with-libevent=/usr;然后make;然后make install  
  
;  
这样就完成了Linux下Memcache服务器端的安装。详细的方法如下:  
  
   
  
1.分别把memcached和libevent下载回来,放到 /tmp 目录下:  
# cd /tmp  
# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz  
# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz  
  
2.先安装libevent:  
# tar zxvf libevent-1.2.tar.gz  
# cd libevent-1.2  
# ./configure –prefix=/usr  
# make  
# make install  
  
3.测试libevent是否安装成功:  
# ls -al /usr/lib | grep libevent  
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3  
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3  
-rw-r–r– 1 root root 454156 11?? 12 17:38 libevent.a  
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la  
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3  
还不错,都安装上了。  
  
4.安装memcached,同时需要安装中指定libevent的安装位置:  
# cd /tmp  
# tar zxvf memcached-1.2.0.tar.gz  
# cd memcached-1.2.0  
# ./configure –with-libevent=/usr  
# make  
# make install  
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。  
安装完成后会把memcached放到 /usr/local/bin/memcached ,  
  
5.测试是否成功安装memcached:  
# ls -al /usr/local/bin/mem*  
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached  
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug  
  
   
  
启动Memcached服务:  
1.启动Memcache的服务器端:  
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.141.64 -p 12000 -c 256 -P /tmp/memcached.pid  
  
-d选项是启动一个守护进程,  
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,  
-u是运行Memcache的用户,我这里是root,  
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,  
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,  
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,  
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,  
  
2.如果要结束Memcache进程,执行:  
  
# kill `cat /tmp/memcached.pid`  
  
也可以启动多个守护进程,不过端口不能重复。  
  
   
  
测试Memcached:  
在电脑的cmd页面输入  
  
   
  
复制代码  
[root@localhost /]# telnet 192.168.1.248 11211  
Trying 192.168.141.64...  
Connected to 192.168.1.248 (192.168.1.248).  
Escape character is '^]'.  
  
问题:如果开启telent失败,就在电脑上开启telent,点击控制面板,程序和功能,点击开启或关闭window功能 telent服务端和客户端都打勾  
  
保存!  
  
   
  
出现一个黑色页面开始输入下面东西!  
1、输入:set key1 0 60 4  
2、输入:zhou  
会出现:STORED  
3、输入:get key1  
出现以下东西:VALUE key1 0 4  
zhou  
END  
复制代码  
  
至此Memcached安装成功!  
  
   
在代码测试一下  
  
         这么多类似的功能都离不开长连接,短连接一般都是单项请求数据,服务器不能主动把数据“推”送客户端,但有了长连接就好多了,利用后端  
  
与前端的技术组合起来,可以实现服务器的“推送信息”功能,如果数据库里面有更新,后端程序可以立即把数据“推送出来”,而不要多次反  
  
复请求,多次建立连接,多次断开。  
  
         因为php连接memcache使用短连接方式,这种方式是每次连上memcached,读写操作完成后,连接关闭,下次需要读写memcache时再重新连。由于php读写memcache特别频繁,自然php连接memcache的次数也就非常多了。而新建连接是需要代价的,会产生软中断。所以就在top内看到%si一直会很高,50%~90%。  
  
  
每次我们访问PHP脚本的时候,都是当所有的PHP脚本执行完成后,我们才得到返回结果。如果我们需要一个脚本持续的运行,那么我们就要通过  
  
php长连接的方式,来达到运行目的。  
  
一般php环境为apache+php+linux,但是由于apache对php连接都有时间限制,一般超过这个连接时间apache服务器会自动断掉连接。  


 
(责任编辑:IT)