64位centOS6.4系統安裝memcached

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  


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