1、原理和流程php
Memcache是高性能的分布式的内存缓存系统,通常做为数据库的前端cache使用,来减轻数据库的压力,提升系统对数据的响应速度;前端
其特征以下:nginx
(1)协议简单,基于libevent的事件处理;算法
(2)内置的内存管理方式;使用LRU算法,当数据快占满指定的内存空间时,新数据会重用过时数据的内存空间;数据库
(3)每一个MEMCACHE服务器相对独立,互不通讯;apache
在系统应用中,其操做流程以下:缓存
(1)当客户端查询数据时,先查看memcache是否存在,若是存在,直接把请求的数据返回给客户端,再也不进行下一步的操做;bash
(2)若是请求的数据不在memcahe中,客户端就去查询数据库,而后把查询到数据返回给客户端,同时将数据存放一份副本到mencache中;服务器
(3)每次更新数据库的同时更新memcache中的数据,保证memcahe中的数据尽可能最新;分布式
(4)指定的内存使用完毕后,会使用LRU(Least Recently Used)策略,新数据替换失效的数据,而后是最近未被使用的数据;
2、安装、启动和关闭
(1)安装libevent;
wget https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz tar -axvf libevent-2.0.22-stable.tar.gz cd libevent-2.0.22-stable ./configure && make && make install
(2)安装memcache
wget http://memcached.org/files/memcached-1.4.22.tar.gz tar -axvf memcached-1.4.22.tar.gz cd memcached-1.4.22 ./configure && make && make install
(3)启动memcache
/usr/local/bin/memcached -u root -m 128 -P /var/run/memcached.pid -d
*关于memcached参数能够经过“/usr/local/bin/memcached -h”来查看
(4)关闭memcache
kill `cat /var/run/memcached.pid`
3、简单操做
(1)进入memcache
telnet 127.0.0.1 11211 #telnet进入memcache界面 set test 0 0 10 #存入test this #输入test的值 STORED #返回存入成功 get test #查询test的值 VALUE test 0 10 this #返回test的值 END
*相似的命令还有add、replace
(2)查询memcache的各类统计状态
stats #查询memcache的各类统计状态 stats reset #重置各类状态统计结果 stats items #显示slabs中items的数目 stats slabs #显示slabs信息
4、memcache的监控
利用memcache.php进行监控,下载memcache.php
wget http://pecl.php.net/get/memcache-2.2.7.tgz
将其解压缩到nginx或者apache的根目录
修改memcache.php文件中下面的行,可添加多台memcache监控;
$MEMCACHE_SERVERS[] = 'mymemcache-server:11211';