64位centOS6.4系統安裝memcached
1.先下載相關資源libevent 和 memcached;
#cd /temp
#wget http://monkey.org/~provos/libevent-2.0.10-stable.tar.gz
#wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
2.判斷系統是否已經安裝了libevent
#rpm -qa | grep libevent
輸出:libevent-1.1a-3.2.1
#rpm -e --nodeps libevent-1.1a-3.2.1(刪除低版本,安裝2.0.10)
3.安裝libevent
#tar xvzf libevent-2.0.10-stable.tar.gz
#cd libevent-2.0.10-stable
#./configure -prefix=/usr (安裝路徑/usr/lib)
#make
#make install
#ls -a /usr/lib | grep libevent (測試是否安裝上)
4.安裝memcached
#tar xvzf memcached-1.4.5.tar.gz
#cd memcached-1.4.5
#./configure -with-libevent=/usr (默認安裝/usr/local/bin/memcached)
#make
#make install
5.以上已安裝完畢,現在開始啓動
#memcached -d -m 128 -l localhost -p 11211 -u root
有可能出錯(未加載libevent-2.0.so.5,啓動失敗):
memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
解決方式:
查看memcached尋找libevent-2.0.so.5模塊的路徑
#LD_DEBUG=libs memcached -v
28788: find library=libevent-2.0.so.5 [0]; searching
28788: search cache=/etc/ld.so.cache
28788: 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)
28788: trying file=/lib64/tls/x86_64/libevent-2.0.so.5
28788: trying file=/lib64/tls/libevent-2.0.so.5
28788: trying file=/lib64/x86_64/libevent-2.0.so.5
28788: trying file=/lib64/libevent-2.0.so.5
28788: trying file=/usr/lib64/tls/x86_64/libevent-2.0.so.5
28788: trying file=/usr/lib64/tls/libevent-2.0.so.5
28788: trying file=/usr/lib64/x86_64/libevent-2.0.so.5
28788: trying file=/usr/lib64/libevent-2.0.so.5
28788:
memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
從上面的內容可看到memcached是從哪些路徑裏面去尋找libevent-2.0.so.5的,隨便找一個路徑,軟鏈接過去即可
#ln -s /usr/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
#memcached -d -m 128 -l localhost -p 11211 -u root
# ps -ef | grep memcached
root 28914 1 0 07:27 ? 00:00:00 memcached -d -m 128 -l localhost -p 11211 -u root (啓動ok)
6.測試memcached
#telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
set foo 0 0 3 (保存命令)
bar (數據)
STORED (結果)
get foo (取得命令)
VALUE foo 0 3 (數據)
bar (數據)
備註:
1.啓動Memcache的服務器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid
-d選項是啓動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,默認64MB, 我這裏是10MB,
-u是運行Memcache的用戶,我這裏是root,
-l是監聽的服務器IP地址,默認爲所有網卡。 我這裏指定了服務器的IP地址192.168.0.200,
-p是設置Memcache監聽的端口,我這裏設置了12000,最好是1024以上的端口,
-c選項是最大運行的併發連接數,默認是1024,我這裏設置了256,按照你服務器的負載量來設定,
-P是設置保存Memcache的pid文件,我這裏是保存在 /tmp/memcached.pid,
-p 使用的TCP端口。默認爲11211
-m 最大內存大小。默認爲64M
-vv 用very vrebose模式啓動,調試信息和錯誤輸出到控制檯
-d 作爲daemon在後臺啓動
2.如果要結束Memcache進程,執行:
# kill `cat /tmp/memcached.pid`
或是 通過ps -ef | grep memcached 找到pid ,然後kill
也可以啓動多個守護進程,不過端口不能重複。
Memcache開機啓動腳本:
#!/bin/sh
#
# memcached: MemCached root
#
# chkconfig: - 90 25
# description: MemCached root
#
# Source function library.
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
#[ ${NETWORKING} = "no" ] && exit 0
#[ -r /etc/sysconfig/dund ] || exit 0
#. /etc/sysconfig/dund
#[ -z "$DUNDARGS" ] && exit 0
MEMCACHED="/usr/local/bin/memcached"
SERVER_IP="192.168.56.101" #你的IP地址
SERVER_PORT="11211"
[ -f $MEMCACHED ] || exit 1
start()
{
echo -n $"Starting memcached: "
$MEMCACHED -u root -d -m 2048 -l $SERVER_IP -p $SERVER_PORT -P /tmp/memcached.pid
echo
}
stop()
{
echo -n $"Shutting down memcached: "
killproc memcached
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 3
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0