Memcache的簡單筆記

一、原理和流程

   Memcache是高性能的分佈式的內存緩存系統,一般作爲數據庫的前端cache使用,來減輕數據庫的壓力,提高系統對數據的響應速度;

其特徵如下:

(1)協議簡單,基於libevent的事件處理;

(2)內置的內存管理方式;使用LRU算法,當數據快佔滿指定的內存空間時,新數據會重用過期數據的內存空間;

(3)每個MEMCACHE服務器相對獨立,互不通信;

在系統應用中,其操作流程如下:

(1)當客戶端查詢數據時,先查看memcache是否存在,如果存在,直接把請求的數據返回給客戶端,不再進行下一步的操作;

(2)如果請求的數據不在memcahe中,客戶端就去查詢數據庫,然後把查詢到數據返回給客戶端,同時將數據存放一份副本到mencache中;

(3)每次更新數據庫的同時更新memcache中的數據,保證memcahe中的數據儘量最新;

(4)指定的內存使用完畢後,會使用LRU(Least Recently Used)策略,新數據替換失效的數據,然後是最近未被使用的數據;


二、安裝、啓動和關閉

(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`


三、簡單操作

(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信息


四、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';

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章