Linux安装Memcached服务
环境:
CentOS 6.4
libevent-1.4.14b-stable
memcached-1.4.21
查看是否安装libevent
[root@localhost ~]# rpm -qa |grep libevent
一、下载Memcache服务器端
memcache官网:http://memcached.org/
libevent官网:http://www.monkey.org/~provos/libevent/
Memcache用到了libevent这个库用于Socket的处理,所以必须先安装libevent.
二、安装
1、分别把memcached和libevent下载下来,放到 /tmp 目录下:
[root@localhost /]# cd /tmp
2、先安装libevent:
[root@localhost tmp]# tar zxvf libevent-1.4.14b-stable.tar.gz
[root@localhost libevent-1.4.14b-stable]# cd libevent-1.4.14b-stable
[root@localhost libevent-1.4.14b-stable]# ./configure –prefix=/usr
[root@localhost libevent-1.4.14b-stable]# make
[root@localhost libevent-1.4.14b-stable]# make install
3、测试libevent是否安装成功:
[root@localhost libevent-1.4.14b-stable]# ls -al /usr/lib | grep libevent
还不错,都安装上了。
4、安装memcached,同时需要安装中指定libevent的安装位置:
[root@localhost libevent-1.4.14b-stable]# cd /tmp
[root@localhost tmp]# tar zxvf memcached-1.4.21.tar.gz
[root@localhost tmp]# cd memcached-1.4.21
[root@localhost memcached-1.4.21]# ./configure –with-libevent=/usr
[root@localhost memcached-1.4.21]# make
[root@localhost memcached-1.4.21]# make install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到 /usr/local/bin/memcached
5、测试是否成功安装memcached:
[root@localhost memcached-1.4.21]# ls -al /usr/local/bin/mem*
-rwxr-xr-x. 1 root root 340316 Dec 12 14:41 /usr/local/bin/memcached
三、启动Memcached服务
1、启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l localhost -p 11211 -c 256 -P /tmp/memcached.pid
不允许使用root用户启动服务,请以nobody用户执行
# /usr/local/bin/memcached -d -m 1024 -u nobody -p 11211
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
2、如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,不过端口不能重复。
四、测试Memcached
本步骤需要安装telnet,如果下面步骤执行有问题,请参照:http://www.cnblogs.com/yangxia-test/p/4159891.html
[root@localhost memcached-1.4.21]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
至此Memcached安装成功!
五、查看Memcached状态
[root@localhost memcached-1.4.21]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
stats
STAT pid 3401 //memcache服务器的进程ID
STAT uptime 1481 //服务器已经运行的秒数
STAT time 1418368595 //服务器当前的unix时间戳
STAT version 1.4.21 //memcache版本
STAT libevent 1.4.14b-stable //libevent版本
STAT pointer_size 64 //当前操作系统的指针大小(32位系统一般是32bit,64就是64位操作系统)
STAT rusage_user 0.014997 //进程的累计用户时间
STAT rusage_system 0.022996 //进程的累计系统时间
STAT curr_connections 10 //服务器当前存储的items数量
STAT total_connections 12 //从服务器启动以后存储的items总数量
STAT connection_structures 11 //服务器分配的连接构造数
STAT reserved_fds 20
STAT cmd_get 0 //get命令(获取)总请求次数
STAT cmd_set 0 //set命令(保存)总请求次数 www.2cto.com
STAT cmd_flush 0 //flush命令请求次数
STAT cmd_touch 0 //touch命令请求次数
STAT get_hits 0 //总命中次数
STAT get_misses 0 //总未命中次数
STAT delete_misses 0 //delete命令未命中次数
STAT delete_hits 0 //delete命令命中次数
STAT incr_misses 0 //incr命令未命中次数
STAT incr_hits 0 //incr命令命中次数
STAT decr_misses 0 //decr命令未命中次数
STAT decr_hits 0 //decr命令命中次数
STAT cas_misses 0 //cas命令未命中次数
STAT cas_hits 0 //cas命令命中次数
STAT cas_badval 0 //使用擦拭次数
STAT touch_hits 0 //touch命令未命中次数
STAT touch_misses 0 //touch命令命中次数
STAT auth_cmds 0 //认证命令处理的次数
STAT auth_errors 0 //认证失败数目
STAT bytes_read 13 //总读取字节数(请求字节数)
STAT bytes_written 0 //总发送字节数(结果字节数)
STAT limit_maxbytes 10485760 //分配给memcache的内存大小(字节)
STAT accepting_conns 1 //服务器是否达到过最大连接(0/1)
STAT listen_disabled_num 0 //失效的监听数
STAT threads 4 //当前线程数
STAT conn_yields 0 //连接操作主动放弃数目
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 0 //当前存储占用的字节数
STAT curr_items 0 //当前存储的数据总数
STAT total_items 0 //启动以来存储的数据总数
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0 //为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
STAT reclaimed 0 //已过期的数据条目来存储新数据的数目
STAT crawler_reclaimed 0
STAT lrutail_reflocked 0
END
退出:quit或者ctrl + ] 然后在按q就行了。
六、遇到的问题
1、如果启动Memcached服务的时候遇到了
/usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory;
解决方案:
[root@localhost bin]# ln -s /usr/lib/libevent-1.2.so.1 /usr/lib64/libevent-1.2.so.1
[root@localhost bin]# /usr/local/bin/memcached -d -m 100 -u root -p 12000 -c 1000 -P /tmp/memcached.pid
[root@localhost bin]# ps -aux
可以看到启动的Memcached服务了.
2、把Memcached服务加载到Linux的启动项中.万一机器断电系统重启.那么Memcached就会自动启动了.
假如启动Memcache的服务器端的命令为:
# /usr/local/bin/memcached -d -m 10 -u root -l localhost -p 11211 -c 256 -P /tmp/memcached.pid容来自17jquery
想开机自动启动的话,只需在/etc/rc.d/rc.local中加入一行,下面命令
/usr/local/memcached/bin/memcached -d -m 10 -p 11211 -u apache -c 256
上面有些东西可以参考一下:即,ip不指定时,默认是本机,用户:最好选择是:apache 或 deamon
这样,也就是属于哪个用户的服务,由哪个用户启动。