一、原理和流程
Memcache是高性能的分布式的内存缓存系统,一般作为数据库的前端cache使用,来减轻数据库的压力,提高系统对数据的响应速度;
其特征如下:
(1)协议简单,基于libevent的事件处理;
(2)内置的内存管理方式;使用LRU算法,当数据快占满指定的内存空间时,新数据会重用过期数据的内存空间;
(3)每个MEMCACHE服务器相对独立,互不通信;
在系统应用中,其操作流程如下:
(1)当客户端查询数据时,先查看memcache是否存在,如果存在,直接把请求的数据返回给客户端,不再进行下一步的操作;
(2)如果请求的数据不在memcahe中,客户端就去查询数据库,然后把查询到数据返回给客户端,同时将数据存放一份副本到mencache中;
(3)每次更新数据库的同时更新memcache中的数据,保证memcahe中的数据尽量最新;
(4)指定的内存使用完毕后,会使用LRU(Least Recently Used)策略,新数据替换失效的数据,然后是最近未被使用的数据;
二、安装、启动和关闭
(1)安装libevent;
1
2
3
4
|
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
1
2
3
4
|
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
1
|
/usr/local/bin/memcached
-u root -m 128 -P
/var/run/memcached
.pid -d
|
*关于memcached参数可以通过“/usr/local/bin/memcached -h”来查看
(4)关闭memcache
1
|
kill
`
cat
/var/run/memcached
.pid`
|
三、简单操作
(1)进入memcache
1
2
3
4
5
6
7
8
|
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的各种统计状态
1
2
3
4
|
stats
#查询memcache的各种统计状态
stats reset
#重置各种状态统计结果
stats items
#显示slabs中items的数目
stats slabs
#显示slabs信息
|
四、memcache的监控
利用memcache.php进行监控,下载memcache.php
1
|
wget http:
//pecl
.php.net
/get/memcache-2
.2.7.tgz
|
将其解压缩到nginx或者apache的根目录
修改memcache.php文件中下面的行,可添加多台memcache监控;
1
|
$MEMCACHE_SERVERS[] =
'mymemcache-server:11211'
;
|
本文转自 bannerpei 51CTO博客,原文链接:http://blog.51cto.com/281816327/1621298,如需转载请自行联系原作者