Centos 7.2 編譯安裝memcached

 

 

Centos 7.2 編譯安裝memcachedhtml

 

環境:

系統node

IP地址linux

所需軟件數據庫

Linux centos7.2  64bitcentos

192.168.100.104瀏覽器

libevent-2.0.22-stable.tar緩存

memcached-1.4.25.tar服務器

 

http://www.linuxfromscratch.org/blfs/view/svn/basicnet/libevent.html  libevent 2.0.22下載地址分佈式

http://download.csdn.net/download/wxmiy/9537528  memcached 1.4.25下載地址ide

重點:

1.許多Web 應用程序都將數據保存到RDBMS中,應用服務器從中讀取數據並在瀏覽器中顯示。但隨着數據量的增大,訪問的集中,就會出現REBMS的負擔加劇,數據庫響應惡化,網站顯示延遲等重大影響。Memcached是高性能的分佈式內存緩存服務器。通常的使用目的是經過緩存數據庫查詢結果,減小數據庫的訪問次數,以提升動態Web 應用的速度、提升擴展性。如圖:

 wKiom1h1n2iiJZKaAAG9XGU1dNk211.png

Memcached做爲高速運行的分佈式緩存服務器具備如下特色。


協議簡單:memcached的服務器客戶端通訊並不使用複雜的MXL等格式,而是使用簡單的基於文本的協議。

基於libevent的事件處理:libevent是個程序庫,他將Linux epollBSD類操做系統的kqueue等時間處理功能封裝成統一的接口。memcached使用這個libevent庫,所以能在LinuxBSDSolaris等操做系統上發揮其高性能。

內置內存存儲方式:爲了提升性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中。因爲數據僅存在於內存中,所以重啓memcached,重啓操做系統會致使所有數據消失。另外,內容容量達到指定的值以後memcached回自動刪除不適用的緩存。

Memcached不互通訊的分佈式:memcached儘管是分佈式緩存服務器,但服務器端並無分佈式功能。各個memcached不會互相通訊以共享信息。他的分佈式主要是經過客戶端實現的。


Memcached的內存管理
   
最近的memcached默認狀況下采用了名爲Slab Allocatoion的機制分配,管理內存。在改機制出現之前,內存的分配是經過對全部記錄簡單地進行mallocfree來進行的。可是這中方式會致使內存碎片,加劇操做系統內存管理器的負擔。

Slab Allocator的基本原理是按照預先規定的大小,將分配的內存分割成特定長度的塊,已徹底解決內存碎片問題。Slab Allocation  的原理至關簡單。將分配的內存分割成各類尺寸的塊(chucnk),並把尺寸相同的塊分紅組(chucnk的集合)如圖:

wKioL1h1n3rQnWlFAAGyeiicrzc268.png
並且slab allocator 還有重複使用已分配內存的目的。也就是說,分配到的內存不會釋放,而是重複利用。

Slab Allocation 的主要術語

    Page :分配給Slab 的內存空間,默認是1MB。分配給Slab 以後根據slab 的大小切分紅chunk.

    Chunk : 用於緩存記錄的內存空間。

    Slab Class:特定大小的chunk 的組。

 

2.編譯安裝的memcached服務,不會在systemctl中生成此服務,必須在安裝目錄下的bin目錄下進行服務的控制,如果yum安裝的memcached,則會自動生成;

Centos 7.2 yum安裝memcached方法:

yum –y installmemcached  ##過程當中會自動安裝好libevent

systemctl startmemcached   ##直接在systemctl中進行啓動

 

 

 

 

 

步驟:

1.安裝libevent:

安裝memcached以前首先須要安裝libevent,我這裏用的版本是:

  • libevent-2.0.22

  • memcached-1.4.25

首先將這兩個安裝文件上傳至Linux服務器,在解壓安裝以前最好先檢查一下是否已安裝,從libevent開始:

rpm -q libevent

發現系統已經安裝了一個版本的libevent

 
wKioL1h1np3wtbb7AAAJuZTupxc950.png

既然已經安裝了一個版本的libevent,那麼咱們就先將其卸載後再安裝咱們本身的libevent,卸載命令以下:

rpm -e --nodeps libevent-2.0.21-4.el7.x86_64

卸載成功後咱們就能夠解壓安裝libevent了,命令以下:

tar -zxvf libevent-2.0.22-stable.tar.gz

解壓後依然是先刪除安裝包:

rm -rf libevent-2.0.22-stable.tar.gz

接下來進入libevent目錄中,指定安裝位置並開始安裝和編譯:

cd libevent-2.0.22-stable/

./configure --prefix=/usr/local/libevent

然而貌似報錯了: 


wKiom1h1nqiCqdKpAABKg62pr74848.png

提示很明確,找不到C編譯器,因此咱們應先安裝gcc,安裝命令以下:

 yum -y install gcc

 

執行安裝直到安裝完畢: 


wKioL1h1nrSzK__oAACXaomSZZA211.png

接下來繼續剛纔安裝和編譯libevent 


wKiom1h1nsDj-hB_AAAbn10OEOs940.png

能夠看到此次成功執行configure,最後就是編譯和安裝了:

make

make install

2.安裝memcached:

成功安裝libevent以後就能夠安裝memcached了,首先執行解壓:

tar -zxvf memcached-1.4.25.tar.gz

可是又報錯了:

 
wKioL1h1ns2xytMEAAASq4OEMJI380.png

提示很明確,not in gzip format,也就是說官方提供的memcached包並無用gzip格式進行壓縮,因此在解壓時也不用加上-z了,直接用-xvf便可,因此正確的解壓命令以下:

tar -xvf memcached-1.4.25.tar.gz

解壓成功後依舊是先刪除壓縮包:

rm -rf memcached-1.4.25.tar.gz

接下來依然是進入memcached安裝目錄執行configure,注意指定安裝路徑和libevent的路徑:

cd memcached-1.4.25/

./configure --prefix=/usr/local/memcached/--with-libevent=/usr/local/libevent/

最後依然是編譯和安裝:

make

make install

至此memcached就算安裝成功了。

3.啓動memcached:

安裝成功後進入memcachedbin目錄執行啓動:

cd /usr/local/memcached/bin/

./memcached -u root -d

最好再將memcache設置爲開機啓動,經過vi命令打開/etc/rc.local並在尾部追加以下配置:

/usr/local/memcached/bin/memcached -u root -d

最後看一下memcached的運行狀態:

ps -ef |grepmemcached或者netstat –utpln |grep 11211

若是看到以下信息就說明memcached運行正常: 


wKiom1h1ntjTFFXdAAAVlj6-Ggg305.png

4.中止memcached:

中止memcached也很簡單,首先須要查一下memcached進程的pid,查詢命令以下:

pgrep memcached

查詢結果以下圖所示: 


wKiom1h1nuSSOLB-AAAIo2Ytj0U933.png

而後再根據pidkill這個進程便可(-9表示強制殺死),命令以下:

kill -925645

相關文章
相關標籤/搜索