Memcached 是一個高性能的分布式記憶體對象緩存系統,用于動态Web應用以減輕資料庫負載。它通過在記憶體中緩存資料和對象來減少讀取資料庫的次數,進而提高動态、資料庫驅動網站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護程序(daemon )是用C寫的,但是用戶端可以用任何語言來編寫,并通過memcached協定與守護程序通信
一、安裝libevent
memcached依賴于libevent API
tar xf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20
./configure --prefix=/usr/local/libevent
make
make install
echo "/usr/local/libevent/lib"> /etc/ld.so.conf.d/libevent.conf
ldconfig
二、安裝配置memcached
tar xf memcached-1.4.15.tar.gz
cd memcached-1.4.15
./configure --prefix=/usr/local/memcached--with-libevent=/usr/local/libevent -enable-sasl
啟動 memcached
/usr/local/memcached/bin/memcached -m 128-n 20 -f 1.1 -vv -u nobody –d
memcached參數及啟動
-d 以守護程式(daemon)方式運作
-u nobody 指定使用者,如果目前為root使用者,需要用該參數指定使用者
-P /tmp/memcached.pid pid到指定目錄
-m 200 資料記憶體數量,機關為MB,不包含memcached本身占用
-M 記憶體不夠時禁止LRU
-n 48 初始chunk=key+suffix+value+32結構體,預設為48位元組
-f 1.25 增長因子,預設為1.25
-L 啟用大記憶體頁,可以降低記憶體浪費,改進性能
-l 127.0.0.1 監聽的IP位址,本機可以不設定此參數
-p 11211 TCP端口,預設11211
-U 11211 UDP端口,預設11211,0為關閉
-c 1024 最大并發連接配接數,預設1024,最好設定為200
-t 4 線程數,預設為4。memcached采用NIO,是以線程多沒用
-R 20 每個event連接配接最大并發數,預設20
-C 禁用CAS指令(可以禁止版本計數,減少開銷)
-S 啟用sasl進行使用者認證
連接配接到 memcached
telnet localhost 11211
基本 memcached 客戶機指令
set 添加新的鍵值對,如果以存在,将會重寫
add 當緩存中不存在鍵時,add指令才會向緩存中添加一個鍵值對。如果緩存中已經存在鍵,則之前的值将仍然保持相同,并且将獲得響應NOT_STORED。
replace 僅當鍵已經存在時,replace指令才會替換緩存中的鍵。如果緩存中不存在鍵,那麼您将從 memcached 伺服器接受到一條 NOT_STORED響應。
get 指令用于檢索與之前添加的鍵值對相關的值。
gets 同get,但傳回的資訊要多餘get
delete 用于删除memcached 中的任何現有值。您将使用一個鍵調用 delete,如果該鍵存在于緩存中,則删除該值。如果不存在,則傳回一條NOT_FOUND 消息。
append 在一個存在的項後增加資料
prepend 在一個存在的項首增加資料
stats 目前memcached執行個體資訊
flush_all 清理緩存中的所有鍵值對
stats slabs 顯示slabs資訊,可以擷取每個slabs的chunksize長度,進而确定資料到底儲存在哪個slab
stats items 顯示slab中item數目
檢視、關閉memcached
ps -ef|grep memcache #檢視其程序
kill `cat /tmp/memcached.pid`#關閉其程序
三、安裝PHP的memcache擴充
tar xf memcache-2.2.5.tgz
cd memcache-2.2.5
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config --enable-memcache
vim /usr/local/php/lib/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
(上面紅色字型來源安裝後的提示)
四、Nginx整合memcached:
server {
listen 80;
server_name www.benet.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
set $memcached_key $uri;
memcached_pass 127.0.0.1:11211;
default_type text/html;
error_page 404 @fallback;
}
location @fallback {
proxy_pass http://192.168.1.10;
}
本文轉自 meteor_hy 51CTO部落格,原文連結:http://blog.51cto.com/zuoshou/1665344,如需轉載請自行聯系原作者