1.Memcached是什麼?
Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。
說的簡單一點,相對於Web來說,Memcached就是一種減輕Mysql數據庫負載、提升網站速度的一種基於鍵/值對的分佈式內存對象緩存系統。【大家都知道傳統的RDBMS系統把數據是以文件的形式保存在磁盤上,而Memcached把數據是保存在內存中的,好處就不用我說了,內存的讀寫速度要比磁盤的讀寫速度要快好多,前者是後者的10的6次方倍】
2.Memcached與傳統RDBMS的關係:
客戶端第一次訪問應用程序,會到傳統的RDBMS(關係數據庫管理系統),讀取數據,返回給客戶端,同時把數據儲存到Memcached裏。
客戶端第二次訪問時,因爲數據已經緩存【內存中】,不用去RDBMS查詢數據,直接從Memcached取。【大大減少時間耗費,提高響應速度】
3.Memcached源碼安裝:
首先,Memcached是基於libevent的,確保你的Linux系統已經安裝了libevent,libevent是個程序庫。它將Linux的epoll、BSD類操作系統的kqueue等事件處理功能封裝成統一的接口。即使對服務器的連接數增加,也能發揮O(1)的性能。memcached使用這個libevent庫,因此能在Linux、BSD、Solaris等操作系統上發揮其高性能。
如果沒有安裝該程序庫,馬上安裝:
到ibevent 官網去下載最新最穩定的版本。然後用SSH工具【SecureCRT】上傳到Linux上。
或者直接通過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
編譯及安裝 make && make install
查看是否安裝成功。 ls -al /usr/lib/ | grep libevent
如下圖:
接下來安裝Memcached:
到 Memcached 官網 去下載最新源碼包。然後上傳到Linux上。
或者 wget http://www.memcached.org/files/memcached-1.4.20.tar.gz 直接下載
解壓。tar zxvf memcached-1.4.20.tar.gz
進入 memcached-1.4.20 文件夾中。./configure --with-libevent=/usr 【指定livebent安裝路徑】
編譯及安裝 make && make install
查看安裝結果。ls -al /usr/local/bin/memcached
如下圖:
現在安裝一切OK,現在讓我們啓動Memcached測試下吧!
啓動Memcached:
/usr/local/bin/memcached -d -m 512 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
參數說明:
-d 選項是啓動一個守護進程
-m 是分配給Memcache使用的內存數量,單位是MB,這裏是512MB
-u 是運行Memcache的用戶,這裏是root
-l 是監聽的服務器IP地址,如果有多個地址的話,以逗號隔開。這裏指定了服務器的IP地址127.0.0.1
-p 是設置Memcache監聽的端口,我這裏設置了11211【默認端口】,最好是1024以上的端口
-c 選項是最大運行的併發連接數,默認是1024,我這裏設置了256,按照你服務器的負載量來設定
-P 是設置保存Memcache的pid文件,我這裏是保存在 /tmp/memcached.pid
結束Memcached:
kill `cat /tmp/memcached.pid`
或者:
ps -aux | grep memcache
然後直接kill掉memcache進程。
使用telnet測試Memcached的連接狀態。
如果沒有安裝telnet服務,直接通過yum方式安裝 yum -y install telnet-server telnet
編輯 vim /etc/xinetd.d/telnet,修改該文件中 disable = yes【默認】爲 disable = no
如下圖:
C.重啓telnet服務,service xinetd restart
D.測試Memcached的連接 telnet 127.0.0.1 11211
如下圖:
退出telnet,執行quit命令即可,上圖所示的memcached進程ID,很重要,如果我們需要關閉memcached服務時,就可以執行命令,kill -9 進程號 即可。
至此,你的Linux服務器上安裝了Memcached服務,你可以使用各種語言來使用Memcache服務了,真是爽極了!