memcached 的安装与应用
一.memcached 应用:
? ?最基础的项目应用:实时消息机制的应用,如用户需要获得实时消息,最没有效率的做法是用户定时去查询数据库,这样资源消耗过大,对系统稳定性也不好,通常的解决方案是缓存,服务器端定时查询消息更新缓存,用户查询消息时,直接读缓存即可。
二.memcached服务器的安装:
? ? 1.查看服务器是否已经安装:
?
yum list memcached
? ??? ? 如已经存在,且版本符合自己的需求,则可直接使用,如不符合,则用以下命令卸载:
?
yum remove memcached
? ? ? ?如不存在,则使用以下命令进行安装:
?
yum install memcached
?
?
?---------------------------------------------------------
?
?
? ? 2.上述是最简单的方式,但如果想安装自己喜欢的版本,则:
?
? ?1)用到的软件包:
- libevent-2.0.17-stable.tar.gz ?[http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz]
- memcached-1.4.13.tar.gz ?[http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz]
? ?2)下载软件包:
Java代码?- [root@hxqlinux?~]#?cd?/tmp??
- [root@hxqlinux?tmp]#?wget?http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz??
- [root@hxqlinux?tmp]#?wget?https://github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz??
?
3)先安装libevent(memcached依赖libevent):
Java代码??- [root@hxqlinux?tmp]#?tar?zxvf?libevent-2.0.17-stable.tar.gz??
- [root@hxqlinux?tmp]#?cd?libevent-2.0.17-stable??
- [root@hxqlinux?libevent-2.0.17-stable]#?./configure?--prefix=/usr??
- [root@hxqlinux?libevent-2.0.17-stable]#?make?&&?make?install??
? ?4) 测试libevent是否安装成功:
Java代码??- [root@hxqlinux?libevent-2.0.17-stable]#?ls?-al?/usr/lib?|grep?libevent??
看到类似下面的截图,说明libevent安装成功:
?
5) 安装memcached:
Java代码??- [root@hxqlinux?tmp]#?tar?zxvf?memcached-1.4.13.tar.gz???
- [root@hxqlinux?tmp]#?cd?memcached-1.4.13??
- [root@hxqlinux?memcached-1.4.13]#?./configure?--with-libevent=/usr??
- [root@hxqlinux?memcached-1.4.13]#?make?&&?make?install??
?
6) 测试memcached是否安装成功:
Java代码??- [root@hxqlinux?memcached-1.4.13]#?ls?-al?/usr/local/bin/memcached??
?看到类似下面的截图,说明memcached安装成功:
?
?
?---------------------------------------------------------
?
?
3, memcached服务器的启动和关闭:
一,直接的命令行方式:
1) 启动和查看是否启动:
?
Java代码??- [root@hxqlinux?~]#/usr/local/bin/memcached?-d?-m?128?-u?root?-p?11211?-c?256?-P?/var/run/memcached1.pid??
- [root@hxqlinux?~]#?ps?aux|grep?memcached ?
?
看到类似下面的截图,说明memcached1启动成功
?
? ?启动说明:
??Java代码??
- [root@hxqlinux?~]#/usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 11211 -c 256 -P /opt/memcached.pid? ?
?
? ?参数:?
-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文件,我这里是保存在 /opt/memcached.pid
?2)关闭:?
Java代码?- [root@hxqlinux?~]#??kill 'cat?/var/run/memcached1.pid'
?再通过ps aux|grep memcached进行查看
?
二,服务的方式:
1)新建启动和关闭脚本并赋执行权限:
Java代码??- [root@hxqlinux?~]#?cp?/tmp/memcached-1.4.13/scripts/memcached.sysv?/etc/init.d/memcached??
- [root@hxqlinux?~]#?chmod?755?/etc/init.d/memcached??
?
2)修改/etc/init.d/memcached文件(只列出了需要修改的内容):?
Html代码?- PORT=11212??
- USER=root??
- MAXCONN=256??
- CACHESIZE=128??
- OPTIONS=""??
- ??
- ??
- chown?$USER?/usr/local/bin/memcached??
- ?/usr/local/bin/memcached?-d?-p?$PORT?-u?$USER??-m?$CACHESIZE?-c?$MAXCONN?-P?/var/run/memcached2.pid?$OPTIONS??
?
3)加入系统服务,并启动memcached服务,同时查看memcached服务是否启动成功:
Java代码?- [root@hxqlinux?~]#?chkconfig?--add?memcached??
- [root@hxqlinux?~]#?chkconfig?--level?235?memcached?on??
- [root@hxqlinux?~]#?chkconfig?--list?memcached??
?
?4)启动memcached服务器并检查memcached是否启动,关闭memcached:
Java代码?- [root@hxqlinux?~]#?service?memcached?start??
- [root@hxqlinux?~]#?ps?aux|grep?memcached??
- [root@hxqlinux?~]#?service?memcached?stop??
?
?
?---------------------------------------------------------
?
4, 测试外部是否可以访问memcached服务器:
通过telnet ip port来测试memcached是否可以访问,如果不能访问,应该是centos6的防火墙问题,进行如下修改:
Java代码?- [root@hxqlinux?~]#?iptables?-I?INPUT?-p?tcp?--dport?11211?-j?ACCEPT;??
- [root@hxqlinux?~]#?iptables?-I?OUTPUT?-p?tcp?--sport?11211?-j?ACCEPT;????
- [root@hxqlinux?~]#?iptables-save??
- [root@hxqlinux?~]#?service?iptables?save;??
?此时外部程序应该可以访问memcached 服务器了
?
?
?
?---------------------------------------------------------
?
?
5, 注意:
一,安装libevent的时候最好指定--prefix=/usr, 不然在安装memcached的时候可能会报找不到libevent的错误。
二,至于windows下的安装,请参考:http://blog.csdn.net/zhangking/article/details/7104668
三,也可以通过netstat -anp|grep 1121* 来查看memcache是否启动
?
博客来源:http://hxq0506.iteye.com/blog/1388971
? ? ? ? ? ? ? ? ??http://www.ccvita.com/257.html
?