linux下 memcached-1.4.5 安装

来源:互联网 发布:2015网络广告费用 编辑:程序博客网 时间:2024/05/20 17:59

linux下 memcached-1.4.5  安装


一. 安装:libevent

下载地址:http://www.monkey.org/~provos/libevent/
./configure --prefix=/usr/local/libevent
make && make install

二. 安装:memcached

下载地址:http://code.google.com/p/memcached/downloads/list

wget http://memcached.org/latest 
tar -zxvf memcached-1.4.5.tar.gz 
cd memcached-1.4.5 
./configure --prefix=/usr/local/memcache --with-libevent=/usr/local/libevent/
make &&  make install

错误1:
安装包的时候运行./configure --prefix=/usr/local/memcache --with-libevent=/usr/local/libevent/ 时出现下面的提示:
checking build system type... Invalid configuration `i686-pc-linux-': machine `i686-pc-linux' not recognized
configure: error: /bin/sh config/config.sub i686-pc-linux- failed

解决方法:
./configure --prefix=/usr/local/memcache --with-libevent=/usr/local/libevent/ --build=i686-pc-linux-gnu

错误2:
configure: error: no acceptable C compiler found in $PATH

解决方法:
yum install gcc

./configure --prefix=/usr/local/memcache --with-libevent=/usr/local/libevent/
make && make install


三. 启动服务 :

 /usr/local/memcache/bin/memcached
memcached -d -m 10    -u root -l 192.168.40.4 -p 12000 -c 256 -P /tmp/memcached.pid  (完整启动)
memcached -d -m 1024    -u root  -p 55001 -c 2048   (默认启动)

 默认端口;11211


参数说明:
-d选项是启动一个守护进程
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB
-u是运行Memcache的用户,我这里是root
-l是监听的服务器IP地址
-p是设置Memcache监听的端口,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定
-P是设置保存Memcache的pid文件
-vv 调试模式


在启动memcache时会遇到如下的错误
[root@crs2 memcached-1.4.5]# ./memcached -d -m 64    -u root  -p 55001 -c 2048 
./memcached: error while loading shared libraries: libevent-2.0.so.2: cannot open shared object file: No such file or directory

 

解决方法:

[root@crs2 memcached-1.4.5]# LD_DEBUG=libs /usr/local/memcache/bin/memcached -v
      9957:     find library=libevent-2.0.so.2 [0]; searching
      9957:      search cache=/etc/ld.so.cache
      9957:      search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib              (system search path)
      9957:       trying file=/lib/tls/i686/sse2/libevent-2.0.so.2
      9957:       trying file=/lib/tls/i686/libevent-2.0.so.2
      9957:       trying file=/lib/tls/sse2/libevent-2.0.so.2
      9957:       trying file=/lib/tls/libevent-2.0.so.2
      9957:       trying file=/lib/i686/sse2/libevent-2.0.so.2
      9957:       trying file=/lib/i686/libevent-2.0.so.2
      9957:       trying file=/lib/sse2/libevent-2.0.so.2
      9957:       trying file=/lib/libevent-2.0.so.2
      9957:       trying file=/usr/lib/tls/i686/sse2/libevent-2.0.so.2
      9957:       trying file=/usr/lib/tls/i686/libevent-2.0.so.2
      9957:       trying file=/usr/lib/tls/sse2/libevent-2.0.so.2
      9957:       trying file=/usr/lib/tls/libevent-2.0.so.2
      9957:       trying file=/usr/lib/i686/sse2/libevent-2.0.so.2
      9957:       trying file=/usr/lib/i686/libevent-2.0.so.2
      9957:       trying file=/usr/lib/sse2/libevent-2.0.so.2
      9957:       trying file=/usr/lib/libevent-2.0.so.2
      9957:
/usr/local/memcache/bin/memcached: error while loading shared libraries: libevent-2.0.so.2: cannot open shared object file: No such file or directory

 

创建了软连接就可以解决
[root@crs2 memcached-1.4.5]# ln -s /usr/local/libevent/lib/libevent-2.0.so.2 /lib/libevent-2.0.so.2

 

这时,再启动memcached 就可以了
[root@crs2 memcached-1.4.5]# ./memcached -d -m 64    -u root  -p 55001 -c 2048

 

 

登录memcache
[root@crs2 memcached-1.4.5]# telnet 127.0.0.1 55001
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
stats
STAT pid 9963
STAT uptime 307
STAT time 1292559170
STAT version 1.4.5
STAT pointer_size 32
STAT rusage_user 0.000000
STAT rusage_system 0.043993
STAT curr_connections 10
STAT total_connections 11
STAT connection_structures 11
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END
quit
Connection closed by foreign host.

 

启动memcached:/usr/local/memcached/bin/memcached -d -c 10240 -m 1024 -u root
获取运行状态:echo stats | nc localhost 11211(可以查看出pid) 或使用ps -ef|grep memcached 
停止memcached:kill -9 pid  (-9表示强制杀死,pid 为进程的进程标识符)
-d 选项是启动一个守护进程,
-m 是分配给Memcache使用的内存数量,单位是MB,这里是1024MB,默认是64MB
-u 是运行Memcache的用户,这里是root
-l 是监听的服务器IP地址,默认应该是本机
-p 是设置Memcache监听的端口,默认是11211,最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024,这里设置了10240,按照你服务器的负载量来设定
-P 是设置保存Memcache的pid文件位置
-h 打印帮助信息
-v 输出警告和错误信息
-vv 打印客户端的请求和返回信息
 
ps -ef|grep memcached(命令说明) 
grep:功能说明:查找文件里符合条件的字符串。
|:管道命令操作符
ps(process status):功能说明:报告程序状况。
 
连接到 memcached:
telnet ip 端口,如telnet 192.168.100.11 11211
stats查看状态,flush_all:清楚缓存
查看memcached状态的基本命令,通过这个命令可以看到如下信息:



四、配置为自启动服务

1.编写memcached自启动脚本或直接使用memcached安装包中的脚本(位置如下,本文使用官方自带的脚本)

2.修改自启动脚本(红色部分标识,中文注释仅限本文提示用,安装包没有)

#! /bin/sh

#

# chkconfig: - 55 45

# description: The memcached daemon is a network memory cache service.

# processname: memcached

# config: /etc/sysconfig/memcached

 

# Source function library - for other linux

#. /etc/rc.d/init.d/functions

# Source function library - for SUSE linux

. /lib/lsb/init-functions

 

PORT=11211

USER=root

#最大连接数,根据实际需求修改

MAXCONN=1024

#最大内存量,单位M

CACHESIZE=128

OPTIONS=""

 

if [ -f /etc/sysconfig/memcached ];then

. /etc/sysconfig/memcached

fi

 

# Check that networking is up.

if [ "$NETWORKING" = "no" ]

then

exit 0

fi

 

RETVAL=0

prog="memcached"

 

start () {

echo -n $"Starting $prog: "

# insure that /usr/local/memcached has proper permissions

chown $USER /usr/local/memcached

/usr/local/memcached/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /usr/local/memcached/memcached.pid $OPTIONS

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached

}

stop () {

echo -n $"Stopping $prog: "

killproc memcached

RETVAL=$?

echo

if [ $RETVAL -eq 0 ] ; then

rm -f /var/lock/subsys/memcached

rm -f /usr/local/memcached/memcached.pid

fi

}

 

restart () {

stop

start

}

 

 

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status memcached

;;

restart|reload)

restart

;;

condrestart)

[ -f /var/lock/subsys/memcached ] && restart || :

;;

*)

echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"

exit 1

esac

 

exit $?

3.将此脚本cp到/etc/init.d目录下并改名为memcached,然后执行chmod a+x memcached,如下:

shell > cp memcached.sysv /etc/init.d/memcached

shell > chmod 755 /etc/init.d/memcached

4.将memcached加入系统服务:

shell > chkconfig --add memcached

shell > chkconfig memcached on

5.以服务方式运行memcached
shell > service memcached start

以上如成功则重启下系统后查看下memcached是否已随系统启动



====================================================
示例:
#!/bin/sh
#
# memcached:    MemCached Daemon
#
# chkconfig:    - 90 25 
# description:  MemCached Daemon
#

# Source function library.
. /etc/rc.d/init.d/functions

. /etc/sysconfig/network

start() 
{
        echo -n $"Starting memcached: "
        daemon /usr/local/bin/memcached -u daemon -d -m 4096 -l 10.10.10.220 -p 58728
        echo
}


stop() 
{
        echo -n $"Shutting down memcached: "
        killproc memcached 

        echo
}


[ -f /usr/local/bin/memcached ] || exit 0

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        ;;
  condrestart)
        stop
        start
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|condrestart}"
        exit 1
esac

exit 0

=======================================================

[root@crm ~]# chkconfig  --add memcached 
[root@crm ~]# chkconfig  --level 3  memcached  on
[root@crm ~]# chkconfig  --list | grep mem
memcached       0:off   1:off   2:off   3:on    4:off   5:off   6:off

[root@crm ~]# /etc/rc.d/init.d/memcached  restart
Shutting down memcached: [  OK  ]
Starting memcached:      [  OK  ]
[root@crm ~]# ps aux | grep mem
daemon   23781  0.0  0.2 13892 9860 ?  Ss 16:51:00  /.../memcached -u daemon -d -m 1024 -l 172.16.0.106 -p 11211


原创粉丝点击