一、原理和流程
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>&& </code><code>make</code> <code>&& </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,如需轉載請自行聯系原作者