天天看点

Memcache的简单笔记

一、原理和流程

   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

<code>wget https:</code><code>//sourceforge</code><code>.net</code><code>/projects/levent/files/libevent/libevent-2</code><code>.0</code><code>/libevent-2</code><code>.0.22-stable.</code><code>tar</code><code>.gz </code>

<code>tar</code> <code>-axvf libevent-2.0.22-stable.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>libevent-2.0.22-stable</code>

<code>.</code><code>/configure</code> <code>&amp;&amp; </code><code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

(2)安装memcache

<code>wget http:</code><code>//memcached</code><code>.org</code><code>/files/memcached-1</code><code>.4.22.</code><code>tar</code><code>.gz</code>

<code>tar</code> <code>-axvf memcached-1.4.22.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>memcached-1.4.22</code>

(3)启动memcache

<code>/usr/local/bin/memcached</code> <code>-u root -m 128 -P </code><code>/var/run/memcached</code><code>.pid -d</code>

*关于memcached参数可以通过“/usr/local/bin/memcached -h”来查看

(4)关闭memcache

<code>kill</code> <code>`</code><code>cat</code> <code>/var/run/memcached</code><code>.pid`</code>

三、简单操作

(1)进入memcache

5

6

7

8

<code>telnet 127.0.0.1 11211 </code><code>#telnet进入memcache界面</code>

<code>set</code> <code>test</code>  <code>0 0 10    </code><code>#存入test</code>

<code>this             </code><code>#输入test的值</code>

<code>STORED            </code><code>#返回存入成功</code>

<code>get </code><code>test</code>           <code>#查询test的值</code>

<code>VALUE </code><code>test</code> <code>0 10</code>

<code>this             </code><code>#返回test的值</code>

<code>END</code>

*类似的命令还有add、replace

(2)查询memcache的各种统计状态

<code>stats     </code><code>#查询memcache的各种统计状态</code>

<code>stats reset </code><code>#重置各种状态统计结果</code>

<code>stats items </code><code>#显示slabs中items的数目</code>

<code>stats slabs </code><code>#显示slabs信息</code>

四、memcache的监控

利用memcache.php进行监控,下载memcache.php

<code>wget http:</code><code>//pecl</code><code>.php.net</code><code>/get/memcache-2</code><code>.2.7.tgz</code>

将其解压缩到nginx或者apache的根目录

修改memcache.php文件中下面的行,可添加多台memcache监控;

<code>$MEMCACHE_SERVERS[] = </code><code>'mymemcache-server:11211'</code><code>;</code>

本文转自 bannerpei 51CTO博客,原文链接:http://blog.51cto.com/281816327/1621298,如需转载请自行联系原作者