1.Memcached是什么?
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
说的简单一点,相对于Web来说,Memcached就是一种减轻Mysql数据库负载、提升网站速度的一种基于键/值对的分布式内存对象缓存系统。【大家都知道传统的RDBMS系统把数据是以文件的形式保存在磁盘上,而Memcached把数据是保存在内存中的,好处就不用我说了,内存的读写速度要比磁盘的读写速度要快好多,前者是后者的10的6次方倍】
2.Memcached与传统RDBMS的关系:
客户端第一次访问应用程序,会到传统的RDBMS(关系数据库管理系统),读取数据,返回给客户端,同时把数据储存到Memcached里。
客户端第二次访问时,因为数据已经缓存【内存中】,不用去RDBMS查询数据,直接从Memcached取。【大大减少时间耗费,提高响应速度】
3.Memcached源码安装:
首先,Memcached是基于libevent的,确保你的Linux系统已经安装了libevent,libevent是个程序库。它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
如果没有安装该程序库,马上安装:
到ibevent 官网去下载最新最稳定的版本。然后用SSH工具【SecureCRT】上传到Linux上。
或者直接通过wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz 下载下来
解压。tar zxvf libevent-2.0.21-stable.tar.gz
进入解压后的文件夹中。 cd libevent-2.0.21-stable 执行 ./configure --prefix=/usr
编译及安装 make && make install
查看是否安装成功。 ls -al /usr/lib/ | grep libevent
如下图:
接下来安装Memcached:
到 Memcached 官网 去下载最新源码包。然后上传到Linux上。
或者 wget http://www.memcached.org/files/memcached-1.4.20.tar.gz 直接下载
解压。tar zxvf memcached-1.4.20.tar.gz
进入 memcached-1.4.20 文件夹中。./configure --with-libevent=/usr 【指定livebent安装路径】
编译及安装 make && make install
查看安装结果。ls -al /usr/local/bin/memcached
如下图:
现在安装一切OK,现在让我们启动Memcached测试下吧!
启动Memcached:
/usr/local/bin/memcached -d -m 512 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
参数说明:
-d 选项是启动一个守护进程
-m 是分配给Memcache使用的内存数量,单位是MB,这里是512MB
-u 是运行Memcache的用户,这里是root
-l 是监听的服务器IP地址,如果有多个地址的话,以逗号隔开。这里指定了服务器的IP地址127.0.0.1
-p 是设置Memcache监听的端口,我这里设置了11211【默认端口】,最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定
-P 是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
结束Memcached:
kill `cat /tmp/memcached.pid`
或者:
ps -aux | grep memcache
然后直接kill掉memcache进程。
使用telnet测试Memcached的连接状态。
如果没有安装telnet服务,直接通过yum方式安装 yum -y install telnet-server telnet
编辑 vim /etc/xinetd.d/telnet,修改该文件中 disable = yes【默认】为 disable = no
如下图:
C.重启telnet服务,service xinetd restart
D.测试Memcached的连接 telnet 127.0.0.1 11211
如下图:
退出telnet,执行quit命令即可,上图所示的memcached进程ID,很重要,如果我们需要关闭memcached服务时,就可以执行命令,kill -9 进程号 即可。
至此,你的Linux服务器上安装了Memcached服务,你可以使用各种语言来使用Memcache服务了,真是爽极了!