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]# LD_DEBUG=libs memcached -v 
[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
这样,也就是属于哪个用户的服务,由哪个用户启动。

原文地址:https://www.cnblogs.com/-mrl/p/5080690.html