天天看點

linux Memcached服務

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,如需轉載請自行聯系原作者