CentOS6.6 安裝Memcache

Memcache是一個高性能的分佈式的內存對象緩存系統,通過在內存裏維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據.簡單的說就是將數據調用到內存中,然後從內存中讀取,從而大大提高讀取速度。

工作原理:

①客戶端第一次訪問應用程序時,會到數據庫(RDBMS)中取出數據,返回給客戶端;同時也將取出的數據保存到memcached中。

② 第二次訪問時,因爲數據已經緩存,不不用去數據庫查詢了,直接從memcached取。
那麼memcached的快速和高效率是如何體現出來的呢?我們都清楚,RDBMS是文件型的數據庫,最終還是以文件的形式保存在磁盤上。而memcached則不一樣,它是key:value關係型的數據庫,是保存在內存中的。那麼就不用我再做說明了,內存的讀寫速度要比磁盤的讀寫速度快得多,前者是後者的10的6次方倍。http://blog.rekfan.com/?p=172

③memcached是基於libevent的事件處理。libevent是個程序庫,它將Linux的epoll、BSD類操作系統的kqueue等事件處理功能封裝成統一的接口。即使對服務器的連接數增加,也能發揮O(1)的性能。 memcached使用這個libevent庫,因此能在Linux、BSD、Solaris等操作系統上發揮其高性能。關於事件處理這裏就不再詳細介紹,可以參考Dan Kegel的The C10K Problem。欲瞭解更更多關於libevent:http://monkey.org/~provos/libevent/



前提:


下載:

1. libevent 

2. memcached


由於memcached和libevent是由C編寫的,所以首先確保你的系統安裝了gcc,如果
沒有安裝,使用yum安裝即可
命令: 

yum -y install gcc
yum -y install gcc-c++


安裝Memcached步驟:


1.編譯安裝Libevent

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz //下載

tar -zxvf libevent-2.0.21-stable.tar.gz  
cd libevent-2.0.21-stable  
./configure --prefix=/usr/local/libevent/  
make  
make install  
ln -s /usr/local/libevent/lib/libevent-2.0.so.5  /lib64/libevent-2.0.so.5 

2.安裝Memcache
wget http://memcached.org/files/memcached-1.4.21.tar.gz //下載

tar -zxvf memcached-1.4.21.tar.gz  
cd memcached-1.4.21
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/  
make  
make install  

3.編寫memcached服務啓停腳本
cd /etc/init.d  
vi memcached 

腳本內容如下:

#!/bin/sh  
#  
# Startup script for the server of memcached  
#http://blog.rekfan.com/?p=172  
# processname: memcached  
# pidfile: /usr/local/memcached/memcached.pid  
# logfile: /usr/local/memcached/memcached_log.txt  
# memcached_home: /etc/memcached  
# chkconfig: 35 21 79  
# description: Start and stop memcached Service  
  
# Source function library  
. /etc/rc.d/init.d/functions  
  
RETVAL=0  
  
prog="memcached"  
basedir=/usr/local/memcached  
cmd=${basedir}/bin/memcached  
pidfile="$basedir/${prog}.pid"  
#logfile="$basedir/memcached_log.txt"  
  
# 設置memcached啓動參數  
ipaddr="172.16.3.129"           # 綁定偵聽的IP地址  
port="11211"                    # 服務端口  
username="root"                 # 運行程序的用戶身份  
max_memory=64                   # default: 64M | 最大使用內存  
max_simul_conn=1024             # default: 1024 | 最大同時連接數  
#maxcon=51200  
#growth_factor=1.3              # default: 1.25 | 塊大小增長因子  
#thread_num=6                   # default: 4  
#verbose="-vv"                  # 查看詳細啓動信息  
#bind_protocol=binary           # ascii, binary, or auto (default)  
  
start() {  
echo -n $"Starting service: $prog"  
$cmd -d -m $max_memory -u $username -l $ipaddr -p $port -c $max_simul_conn -P $pidfile  
RETVAL=$?  
echo  
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog  
}  
  
stop() {  
echo -n $"Stopping service: $prog  "  
run_user=`whoami`  
pidlist=`ps -ef | grep $run_user | grep memcached | grep -v grep | awk '{print($2)}'`  
for pid in $pidlist  
do  
#           echo "pid=$pid"  
kill -9 $pid  
if [ $? -ne 0 ]; then  
return 1  
fi  
done  
RETVAL=$?  
echo  
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog  
}  
  
# See how we were called.  
case "$1" in  
start)  
start  
;;  
stop)  
stop  
;;  
#reload)  
#    reload  
#    ;;  
restart)  
stop  
start  
;;  
#condrestart)  
#    if [ -f /var/lock/subsys/$prog ]; then  
#        stop  
#        start  
#    fi  
#    ;;  
status)  
status memcached  
;;  
*)  
echo "Usage: $0 {start|stop|restart|status}"  
exit 1  
esac  
exit $RETVAL


4.設置腳本可被執行:

chmod +x memcached  
chkconfig --add memcached  
chkconfig --level 35 memcached on  

5.設置防火牆

vi /etc/sysconfig/iptables  

將下面這行加入進去

-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT


注:將memcached加入到防火牆允許訪問規則中

service iptables restart  

注:防火牆重啓

6.啓動memcached

service memcached start  


//啓動的時候實際上是調用了下面的這個命令,以守護進程的方式來啓動memcached

/usr/local/memcached/bin/memcached -d -m 64 -u root -l 172.16.3.129 -p 11211 -c 1024 -P /usr/local/memcached/memcached.pid  

7.查看memcached是否啓動:


ps -ef | grep memcached  


8.memcached命令參數解釋



9.使用telnet,來測試memcache的連接狀態

    安裝telnet:http://jingyan.baidu.com/article/3c48dd34709e70e10be35835.html


10.測試


參考來自:

http://instance.iteye.com/blog/1691705

http://www.tuicool.com/articles/qYJBVb

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