1. 程式人生 > >Centos下安裝memcached+memcached教程

Centos下安裝memcached+memcached教程

memcached centos

Memcached 是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。

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

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


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

Memcached支持Linux系統,也支持Windows系統,分別需要不同的安裝包,鑒於在Windows使用比較少,所以本人今天就總結一下,在CentOS下安裝Memcached的整個流程,一方面是為了記錄一下,防止日後生疏,另一方面也為剛剛使用Memcached的朋友們,提供一份入門的教程。

下面進入正題:

首先,memcached是基於libevent的,所以確保你的系統已經裝了libevent,libevent是個程序庫,它將Linux的epoll、BSD類操作系統的kqueue等事件處理功能封裝成統一的接口。即使對服務器的連接數增加,也能發揮O(1)的性能。 memcached使用這個libevent庫,因此能在Linux、BSD、Solaris等操作系統上發揮其高性能。
由於memcached和libevent是由C編寫的,所以首先確保你的系統安裝了gcc,如果
沒有安裝,使用yum安裝即可
命令:
yum -y install gcc
yum -y install gcc-c++


然後下載 libevent
然後上傳centos,進行給予權限,然後解壓
# tar xzvf libevent-2.0.21-stable.tar.gz ##解壓
# cd libevent-2.0.21-stable
# ./configure --prefix=/usr
# make
# make install
安裝完後可以查看下/usr/lib是否有libevent等文件(ls -al /usr/lib | grep libevent)

然後下載 memcached
# tar xzvf memcached-1.4.15.tar.gz
# cd memcached-1.4.15
# ./configure --with-libevent=/usr
# make
# make install
安裝結果(ls -al /usr/local/bin/memcached)如圖:

技術分享
關於memcache啟動的一些參數說明:
memcached命令參數解釋:
-p <num> 監聽的端口
-l <ip_addr> 連接的IP地址, 默認是本機
-d start 啟動memcached 服務
-d restart 重起memcached 服務
-d stop|shutdown 關閉正在運行的memcached 服務
-d install 安裝memcached 服務
-d uninstall 卸載memcached 服務
-u <username> 以<username>的身份運行 (僅在以root運行的時候有效)
-m <num> 最大內存使用,單位MB。默認64MB
-M 內存耗盡時返回錯誤,而不是刪除項
-c <num> 最大同時連接數,默認是1024
-f <factor> 塊大小增長因子,默認是1.25
-n <bytes> 最小分配空間,key+value+flags默認是48
-h 顯示幫助
然後執行命令啟動memcached
#/usr/local/bin/memcached -d -m 1024 -u root -p 11211 -P /tmp/memcached.pid
然後就可以使用telnet,來測試memcache的連接狀態,
如果沒有安裝telnet服務,可以執行
yum install telnet-server
安裝服務
yum install telnet
安裝命令
然後編輯vi /etc/xinetd.d/telnet 文件,激活telnet,默認是禁用的,截圖如下:

技術分享
然後重啟服務,執行命令 service xinetd restart
然後就可以測試memcached的連接,執行命令
telnet 127.0.0.1 11211
輸入stats,會輸出memcache的一些連接信息,包括PID
如果需要退出,則執行quit命令即可,截圖如下:

技術分享退出telnet,執行quit命令即可,上圖所示的memcached進程ID,很重要,如果我們需要關閉memcached服務時,就可以執行命令,kill -9 進程號 即可。
最後,我們在來看下如何使用JAVA API,簡單的來測試下memcached,註意如果memcached的端口號,需要對外開放,否則,將會出現連接不上的異常,測試環境我們可以把防火墻關閉測試:
用到的jar包,如下所示:

技術分享測試,程序核心代碼和運行結果如下:

package com.test.client;import java.net.InetSocketAddress;import net.spy.memcached.MemcachedClient;/**
* @author qindongliang
*
* JAVA流行技術交流群: 324714439
* 測試memcached客戶端連接
*
* **/public class TestClient {public static void main(String[] args) throws Exception{

MemcachedClient client=new MemcachedClient(new InetSocketAddress("192.168.75.130", 11211)); //60是超時數,默認以秒為單位
client.set("test", 60, "1111測試memcache成功了吧");


System.out.println(client.get("test"));
client.shutdown();//關閉連接}

}


至此,我們已經安裝測試成功了,最後我把memcached的JAVA API所用到的jar上傳上來,方便大家測試。

memcached教程:http://www.runoob.com/memcached/memcached-install.html


本文出自 “linux菜鳥” 博客,請務必保留此出處http://asura1992.blog.51cto.com/8159058/1953635

Centos下安裝memcached+memcached教程