2011-5-5
1、安裝libevent
memcached需要用到socked,依賴此安裝libevent。檢查伺服器系統版本
#lsb_release -a
CentOS release 5.5 (Final)
在安裝之前需要安裝gcc編譯器
#yum install gcc
檢視系統是否利用rpm源安裝過libevent
rpm -qa|grep libevent
libevent-1.4.13-1
一般rpm源的軟體比較舊,可以登入其網站下載下傳最新穩定版本
http://monkey.org/~provos/libevent/
http://monkey.org/~provos/libevent-2.0.11-stable.tar.gz
現在最新穩定版本是2.0.11
在linux環境可以直接下載下傳
#wget -c http://monkey.org/~provos/libevent-2.0.11-stable.tar.gz
在安裝新版本之前
需要解除安裝原來預設安裝的舊版本
#rpm -e libevent-1.4.13-1 --nodeps #忽略依賴删除
安裝libevent
#tar -zxvf libevent-2.0.11-stable.tar.gz
#cd libevent-2.0.11-stable
#./configure
#make && make install
2、安裝memcached
同理檢查系統安裝過
#rpm -qa | grep memcache
php-pecl-memcache-2.2.3-1.el5_2
檢視現在memcached版本
這裡可以把其擴充删除,用源碼編譯安裝
#rpm -e php-pecl-memcache-2.2.3-1.el5_2
我們這裡memcached采用源代碼編譯安裝的方式進行
然後編譯安裝
http://memcached.org/
http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
下載下傳資源
#wget -c http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
安裝memcached
#tar -zxvf memcached-1.4.5.tar.gz
#cd memcached-1.4.5
#./configure
#make && make install
安裝完成後再次檢視
PS:
若要删除編譯安裝的版本,在源碼包目錄下
#make uninstall
或
#make clean
或
#make distclean 若都不提供,直接rm dir
新版本直接指定prefix,然後make && make install
3、目前使用者的.bash_profile中添加環境變量
#vi ~/.bash_profile
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
4 安裝memcached的PHP擴充
上面檢視memcached的時候,已經安裝其擴充。版本差異不大,我就用友善的方式,使用yum安裝memcached的PHP擴充。
#yum install php-pecl-memcache
安裝完以後可以使用下面指令檢視其擴充子產品是否安裝完全
#php -m | grep memcache
memcache
未提示錯誤安裝成功 版本2.2.3-1.el5_2
最後可以執行個php腳本測試,我在10.28.8.76上測試通過。
#vi test_memcached.php
<?php
$mem = new Memcache;
$mem->connect('10.28.8.76', 12000);
$mem->set('key', 'This is a memcache test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
#php test_memcached.php
This is a memcache test!
表明可以使用
5、啟動memcached
更新後需kill原來程序,重新啟動
#ps aux|grep memcache
root 14561 4.6 26.8 1130416 1057740 ? Ssl 11:00 8:24 /usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1000 -P /tmp/memcached.pid
#kill 14561
下面重新啟動
#/usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1000 -P /tmp/memcached.pid
具體參數如下
-d選項是啟動一個守護程序,
-m是配置設定給Memcache使用的記憶體數量,機關是MB,這裡是1024MB
-u是運作Memcache的使用者,目前為 root 的話,需要使用此參數指定使用者。
-l是監聽的伺服器IP位址,如果有多個位址的話,這裡指定伺服器的IP位址10.28.8.76
-p是設定Memcache監聽的端口,這裡設定了12000
-c選項是最大運作的并發連接配接數,預設是1024,這裡設定1000
-P是設定儲存Memcache的pid檔案
我在另一台伺服器上,按指定路徑安裝後會提示以下錯誤,若不指定安裝路徑無問題。
/usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
查找錯誤位置
#LD_DEBUG=libs /usr/local/bin/memcached -v
9041: find library=libevent-2.0.so.5 [0]; searching
9041: search cache=/etc/ld.so.cache
9041: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path)
9041: trying file=/lib64/tls/x86_64/libevent-2.0.so.5
9041: trying file=/lib64/tls/libevent-2.0.so.5
9041: trying file=/lib64/x86_64/libevent-2.0.so.5
9041: trying file=/lib64/libevent-2.0.so.5
9041: trying file=/usr/lib64/tls/x86_64/libevent-2.0.so.5
9041: trying file=/usr/lib64/tls/libevent-2.0.so.5
9041: trying file=/usr/lib64/x86_64/libevent-2.0.so.5
9041: trying file=/usr/lib64/libevent-2.0.so.5
9041:
/usr/local/memcached-1.4.5/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
連結庫
#ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
然後運作memcached
#/usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1024 -P /tmp/memcached.pid
無錯誤提示 OK
檢視其狀态
#echo stats | nc 10.28.8.76 12000
STAT pid 2845
STAT uptime 22208
STAT time 1304582476
STAT version 1.4.5
……
停止Memcache程序:
#kill `cat /tmp/memcached.pid`
6、memcached壓力測試工具memslap的安裝
要使用memslap需安裝libmemcached,其将自帶memslap的工具。
官方網站與下載下傳位址 最新版
http://libmemcached.org/libMemcached.html
http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz
下載下傳與安裝
#wget -c http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz
#tar -xzvf libmemcached-0.49.tar.gz
#cd libmemcached-0.49
#./configure
#make && make install
安裝完成後檢視是否安裝成功
#ls /usr/local/bin/memslap
/usr/local/bin/memslap
若存在則安裝成功
檢視memslap版本
#memslap -V
memslap v1.0