php memcache

CentOS 5.5下安裝memcache

   

在一般情況下,CentOS已經默認安裝了libevent的二進制庫,但是沒有安裝相應的開發所用的頭文件。
所以,你可以使用如下命令來安裝:

yum install libevent-devel

接着可以去http://memcached.org/下載最新的memcached發佈版本。
解壓縮:
tar -xzvf memcached-1.4.4.tar.gz

配置:
cd memcached-1.4.4
./configure –with-libevent=/usr/

備註:如果 libevent 不是安裝在 /usr 目錄下,那麼需要把 libevent-1.4a.so.1  拷貝/鏈接到    /usr/lib 中,否則memcached在配置的時候會報找不到libevent。

編譯:
make

安裝:
make install

啓動:
memcached -l 127.0.0.1 -d -p 11211 -u nobody -m 1024

上面的命令中-d表示用 daemon 的方式啓動 memcached,-l和-p組合表示監聽在 192.168.10.60 的 11211 端口上(如果不用-p指定端口號,則memcached將運行在11211端口上),-u表示運行用戶爲 nobody,-m表示爲其分配1024MB 的內存。

測試:
可以使用telnet連接到192.168.10.60的11211端口,連接成功以後,
先向memcached中添加一個key-value對,key爲test1(後面的0 0 10所表示的具體含義,在下一篇文章中會詳細介紹),value爲testing001:
set test1 0 0 10
testing001
STORED

再從memcached中取回key爲test1所對應的value:
get test1
VALUE test1 0 10
testing001
END

注:上面粗體表示系統輸出的內容

如果能看到類似的輸出,則證明memcached已經正確配置並啓動成功了。

安裝php-memcache擴展
下載:http://pecl.php.net/get/memcache-2.2.4.tgz

#解壓安裝
$ tar -zxvf memcache-2.2.4.tgz
$ cd memcache-2.2.4
$ /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
$ make

$ make test

$ mkdir /usr/local/php/extensions/
$ cp modules/memcache.so /usr/local/php/extensions/


#在php.ini中加入擴展
[vi /usr/local/lib/php.ini]
extension_dir = "/usr/local/php/extensions/"
extension     = "memcache.so"


重新啓動apache即可

5. 測試

  1. <?php
  2.     $mc = new Memcache;
  3.     $mc->connect("127.0.0.1",11211);
  4.     $item = $mc->get('item');
  5.     if(!is_array($item)){
  6.         echo "Add item to memcache";
  7.         $mc->add('item',array('item'));
  8.     }
  9.     $item = $mc->get('item');
  10.     var_dump($item);
  11. ?>

 

啓動

 memcached -d -m 10 -u root -l 202.207.177.177 -p 11211 -c 256 -P /tmp/memcached.pid

   參數說明

  1. -d選項是啓動一個守護進程,  
  2. -m是分配給Memcache使用的內存數量,單位是MB,我這裏是10MB,  
  3. -u是運行Memcache的用戶,我這裏是root,  
  4. -l是監聽的服務器IP地址,如果有多個地址的話,我這裏指定了服務器的IP地址202.207.177.177,  
  5. -p是設置Memcache監聽的端口,我這裏設置了11211,最好是1024以上的端口,  
  6. -c選項是最大運行的併發連接數,默認是1024,我這裏設置了256,按照你服務器的負載量來設定,  
  7. -P是設置保存Memcache的pid文件,我這裏是保存在 /tmp/memcached.pid, 

 ★查看狀態

pid memcache服務器的進程ID
uptime服務器已經運行的秒數
time 服務器當前的unix時間戳
version memcache 版本
pointer_size 當前操作系統的指針大小(32位系統一般是32bit)
rusage_user 進程的累計用戶時間
rusage_system 進程的累計系統時間
curr_items 服務器當前存儲的items數量
total_items 從服務器啓動以後存儲的items總數量
bytes 當前服務器存儲items佔用的字節數
curr_connections 當前打開着的連接數
total_connections 從服務器啓動以後曾經打開過的連接數
connection_structures 服務器分配的連接構造數
cmd_get get命令(獲取)總請求次數
cmd_set set命令(保存)總請求次數
get_hits 總命中次數
get_misses 總未命中次數
evictions 爲獲取空閒內存而刪除的items數(分配給memcache的空間用滿後需要刪除舊的items來得到空間分配給新的items)
bytes_read 總讀取字節數(請求字節數)
bytes_written 總髮送字節數(結果字節數)
limit_maxbytes 分配給memcache的內存大小(字節)
threads 當前線程數 

 ★關閉服務

 kill `cat /tmp/memcached.pid`

  ★監控服務

1.利用本附件的memadmin-1.0.12.tar.gz來監控

 2.利用nagios監控

   安裝插件後定義命名在vi commands.cfg,加入

 define command {
        command_name check_memcached
        command_line $USER1$/check_memcached -H $HOSTADDRESS$:$ARG1$ --size-warning 92 --size-critical 95
              }

 

   添加對memcache監控

define service{
        use generic-service; Name of service template to use
        host_name waptx-5-111.waptx.com
        service_description check_memcached_32004
        servicegroups Memcached
        check_command check_memcached!32004
}

 

 

memcache客戶端

各種memcache客戶端API

http://code.google.com/p/memcached/wiki/Clients

總結:

1.更改php.ini,需要重啓php-fpm 語法:/usr/local/php/sbin/php-fpm restart

2.若想在編譯PHP時指定配置文件路徑,加上:--with-config-file-path=/etc ,些路徑需要是存在的路徑,否則php.ini無法寫入

3.找不到php.ini時,系統啓用默認配置模式

4.將php.ini文件所有路徑加入系統變量也可解決此問題(未償試)

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