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)下载软件包:
[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):
[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是否安装成功:
[root@hxqlinux libevent-2.0.17-stable]# ls -al /usr/lib |grep libevent
看到类似下面的截图,说明libevent安装成功:
5) 安装memcached:
[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是否安装成功:
[root@hxqlinux memcached-1.4.13]# ls -al /usr/local/bin/memcached
看到类似下面的截图,说明memcached安装成功:
---------------------------------------------------------------------------------------------------------------------------------
3, memcached服务器的启动和关闭:
一,直接的命令行方式:
1) 启动和查看是否启动:
[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)关闭:
[root@hxqlinux ~]# kill 'cat /var/run/memcached1.pid'
再通过ps aux|grep memcached进行查看
二,服务的方式:
1)新建启动和关闭脚本并赋执行权限:
[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文件(只列出了需要修改的内容):
[root@hxqlinux ~]# chkconfig --add memcached [root@hxqlinux ~]# chkconfig --level 235 memcached on [root@hxqlinux ~]# chkconfig --list memcached
4)启动memcached服务器并检查memcached是否启动,关闭memcached:
[root@hxqlinux ~]# service memcached start [root@hxqlinux ~]# ps aux|grep memcached [root@hxqlinux ~]# service memcached stop
---------------------------------------------------------------------------------------------------------------------------------
4, 测试外部是否可以访问memcached服务器:
通过telnet ip port来测试memcached是否可以访问,如果不能访问,应该是centos6的防火墙问题,进行如下修改:
[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是否启动