环境需求:
安装Memcached需要libevent库的支持,所以请在安装Memcached之前检查有没有安装libevent。测试环境还需要PHP的支持,本文假设PHP已经安装到/usr/local/php目录下。
服务器端主要是安装memcache服务器端,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent。
memcached下载地址:http://www.danga.com/memcached/
libevent下载地址: http://monkey.org/~provos/libevent/
安装配置:
下载libevent:
mkdir /home/oldboy/tools -p
cd /home/oldboy/tools/
wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
安装libevent:
tar zxf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure –-prefix=/usr ;echo $?
make && make install ;echo $?
cd ..
检查libevent是否安装成功:
[root@jason tools]# ls -al /usr/lib |grep libevent
lrwxrwxrwx 1 root root 21 Feb 20 10:00libevent-1.4.so.2 -> libevent-1.4.so.2.1.3
-rwxr-xr-x 1 root root 373222 Feb 20 10:00 libevent-1.4.so.2.1.3
-rw-r--r-- 1 root root 604082 Feb 20 10:00 libevent.a
-rwxr-xr-x 1 root root 831 Feb 20 10:00libevent.la
lrwxrwxrwx 1 root root 21 Feb 20 10:00libevent.so -> libevent-1.4.so.2.1.3
lrwxrwxrwx 1 root root 26 Feb 20 10:00libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3
-rwxr-xr-x 1 root root 137345 Feb 20 10:00 libevent_core-1.4.so.2.1.3
-rw-r--r-- 1 root root 229088 Feb 20 10:00 libevent_core.a
-rwxr-xr-x 1 root root 866 Feb 20 10:00libevent_core.la
lrwxrwxrwx 1 root root 26 Feb 20 10:00libevent_core.so -> libevent_core-1.4.so.2.1.3
lrwxrwxrwx 1 root root 27 Feb 20 10:00libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3
-rwxr-xr-x 1 root root 295876 Feb 20 10:00 libevent_extra-1.4.so.2.1.3
-rw-r--r-- 1 root root 469194 Feb 20 10:00 libevent_extra.a
-rwxr-xr-x 1 root root 873 Feb 20 10:00libevent_extra.la
lrwxrwxrwx 1 root root 27 Feb 20 10:00libevent_extra.so -> libevent_extra-1.4.so.2.1.3
下载安装memcached,同时指定libevent的位置:
cd /home/oldboy/tools
wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
tar zxf memcached-1.4.13.tar.gz
cd memcached-1.4.13
./configure --with-libevent=/usr ;echo $?
make && make install ;echo $?
cd ..
安装完成后会在/usr/local/bin/目录下发现mencached
[root@jason tools]# ls -al /usr/local/bin/
total 33548
drwxr-xr-x. 2 root root 4096 Feb 20 10:02 .
drwxr-xr-x. 16 root root 4096 Feb 19 13:31 ..
-rwxr-xr-x. 1 root root 7975624 Feb 18 11:00 ccmake
-rwxr-xr-x. 1 root root 7860667 Feb 18 11:00 cmake
-rwxr-xr-x. 1 root root 8421359 Feb 18 11:00 cpack
-rwxr-xr-x. 1 root root 9779615 Feb 18 11:01 ctest
-rwxr-xr-x 1 root root 297114 Feb 20 10:02 memcached
启动:
[root@jason tools]# memcached -p 11211 -u root -m 16m -c 10240 -P/var/run/memcached_11211.pid -d
[root@jason tools]# memcached -p 11212 -u root -m 16m -c 10240 -P /var/run/memcached_11212.pid-d
[root@jason tools]# lsof -i:11211
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
memcached 14960 root 26u IPv4 19716 0t0 TCP *:memcache (LISTEN)
memcached 14960 root 27u IPv6 19717 0t0 TCP *:memcache (LISTEN)
memcached 14960 root 28u IPv4 19720 0t0 UDP *:memcache
memcached 14960 root 29u IPv6 19721 0t0 UDP *:memcache
[root@jason tools]# lsof -i:11212
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
memcached 14967 root 26u IPv4 19743 0t0 TCP *:11212 (LISTEN)
memcached 14967 root 27u IPv6 19744 0t0 TCP *:11212 (LISTEN)
memcached 14967 root 28u IPv4 19747 0t0 UDP *:11212
memcached 14967 root 29u IPv6 19748 0t0 UDP *:11212
如:/usr/local/bin/memcached -d -m 200 -u root -l 192.168.1.91 -p 12000 -c1000 -P /tmp/memcached.pid
相关解释如下:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB
-u是运行Memcache的用户,我这里是root
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.91
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,我这里设置了1000
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
停止Memcache进程:
kill `cat /tmp/memcached.pid`
加入开机自启动:
cat >>/etc/rc.local<<EOF
#memcached start along with sys by lisp
memcached -p 11211 -u root -m 16m -c 10240 -P/var/run/memcached_11211.pid -d
memcached -p 11212 -u root -m 16m -c 10240 -P/var/run/memcached_11212.pid -d
EOF