Memcache的簡單筆記

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';
相關文章
相關標籤/搜索