CentOS5下安装Memcached1.4

本文详细介绍如何在Linux环境下从源码安装libevent及Memcached服务,包括编译参数配置、依赖库处理、服务启动及监控状态的方法。

官方站点:http://www.danga.com/memcached/
JAVA API: http://www.whalin.com/memcached/javadocs/
http://forum.javaeye.com/viewtopic.php?t=20298


下载:memcached  http://www.danga.com/memcached/dist/
      libevent   http://www.monkey.org/~provos/libevent/


接下来是分别将 libevent-1.4.12-stable.tar.gz 和 memcached-1.4.0.tar.gz 解开包、编译、安装:

查看系统是否已经安装libevent
# rpm -qa|grep libevent

安装libevent,64位系统只能安装在/usr下,要不然找不到
# tar -xzf libevent-1.4.12-stable.tar.gz
# cd libevent-1.4.0-stable
# ./configure --prefix=/usr
# make
# make install


如果原系统已经安装,也可升级libevent
yum -y install libevent

测试libevent是不是已经安装成功
# # ls -al /usr/lib | grep libevent  
可以看到多个已经安装的类包


安装memcached
可以先查看编译参数 
# ./configure --h
如果你的系统是64bit的,则加在:--enable-64bit 可以分配大于2G的内存
如果你的系统是多个CPU或者是多核的CPU,则加在:--enable-threads
# cd ..
# tar -xzf memcached-1.4.0.tar.gz
# cd memcached-1.4.0
# ./configure --prefix=/home/web/memcached --with-libevent=/usr
# make
# make install


测试memcache服务器端
/home/web/memcached/bin/memcached -h

如果报错:缺少libevent-1.4.so.2包
一般对于这种依赖的库找不到的情况,在Linux中可以通过设置LD_DEBUG环境变量来获得更多的信息
LD_DEBUG=libs /home/web/memcached/bin/memcached -h

结果发现系统是64位的,在查找libevent-1.4.so.2时出现了问题,都去/usr/lib64下找了,可是安装时都安装到/usr/lib下,应该

是BUG
解决办法,使用软用链接
ln -s /usr/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
就可以了


启动服务端运行:

# ./memcached -d -m 1024 -l 192.168.1.98 -p 11211 -u root

-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
 
-v
-vv 

这将会启动一个占用2G内存的进程,并打开11211端口用于接收请求。由于32位系统只能处理4G内存的寻址,所以在大于4G内存使用

PAE的32位服务器上可以运行2-3个进程,并在不同端口进行监听。

监控状态:
telnet 192.168.1.98 11211
stats 显示服务器信息、统计数据等
stats reset 清空统计数据
stats malloc 显示内存分配数据
stats maps 

自动启动:
vi /home/web/memcached/memcached.sh

#!/bin/bash
# named    cache server service.
# chkconfig: 345 75 15
# description: memcached server
# /etc/rc.d/init.d/named

if [ `id -u` -ne 0 ] 
then
   echo "ERROR:For memcached to port 11211,must run as root."
fi
case "$1" in
   start)
      if [ -x /home/web/memcached/bin/memcached ];
      then
         /home/web/memcached/bin/memcached -d -m 1024 -l 192.168.1.98 -p 11211 -u root -P 

/home/web/memcached/bin/memcached.pid && echo . && echo 'Memcached 1.4.0 server started.'
      fi
   ;;
   stop)
      kill `cat /home/web/memcached/bin/memcached.pid` && echo . && echo 'Memcached 1.4.0 server stopped.......'
   ;;
   restart)
      echo .
      echo "Restart Memcached 1.4.0 server....."
      $0 stop
      sleep 10
      $0 start
   ;;
   *)
      echo "$0 start | stop | restart"
   ;;
esac


cp /home/web/memcached/memcached.sh /etc/init.d/memcached
chmod 755 /etc/init.d/memcached
chkconfig --add memcached
# chkconfig memcachedon or chkconfig --level 345 memcached on

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值