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 應用的速度、提升擴展性。如圖:
Memcached做爲高速運行的分佈式緩存服務器具備如下特色。
協議簡單:memcached的服務器客戶端通訊並不使用複雜的MXL等格式,而是使用簡單的基於文本的協議。
基於libevent的事件處理:libevent是個程序庫,他將Linux 的epoll、BSD類操做系統的kqueue等時間處理功能封裝成統一的接口。memcached使用這個libevent庫,所以能在Linux、BSD、Solaris等操做系統上發揮其高性能。
內置內存存儲方式:爲了提升性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中。因爲數據僅存在於內存中,所以重啓memcached,重啓操做系統會致使所有數據消失。另外,內容容量達到指定的值以後memcached回自動刪除不適用的緩存。
Memcached不互通訊的分佈式:memcached儘管是「分佈式」緩存服務器,但服務器端並無分佈式功能。各個memcached不會互相通訊以共享信息。他的分佈式主要是經過客戶端實現的。
Memcached的內存管理
最近的memcached默認狀況下采用了名爲Slab Allocatoion的機制分配,管理內存。在改機制出現之前,內存的分配是經過對全部記錄簡單地進行malloc和free來進行的。可是這中方式會致使內存碎片,加劇操做系統內存管理器的負擔。
Slab Allocator的基本原理是按照預先規定的大小,將分配的內存分割成特定長度的塊,已徹底解決內存碎片問題。Slab Allocation 的原理至關簡單。將分配的內存分割成各類尺寸的塊(chucnk),並把尺寸相同的塊分紅組(chucnk的集合)如圖:
並且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中進行啓動
安裝memcached以前首先須要安裝libevent,我這裏用的版本是:
libevent-2.0.22
memcached-1.4.25
首先將這兩個安裝文件上傳至Linux服務器,在解壓安裝以前最好先檢查一下是否已安裝,從libevent開始:
rpm -q libevent
發現系統已經安裝了一個版本的libevent:
既然已經安裝了一個版本的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
然而貌似報錯了:
提示很明確,找不到C編譯器,因此咱們應先安裝gcc,安裝命令以下:
yum -y install gcc
執行安裝直到安裝完畢:
接下來繼續剛纔安裝和編譯libevent:
能夠看到此次成功執行configure,最後就是編譯和安裝了:
make
make install
成功安裝libevent以後就能夠安裝memcached了,首先執行解壓:
tar -zxvf memcached-1.4.25.tar.gz
可是又報錯了:
提示很明確,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就算安裝成功了。
安裝成功後進入memcached的bin目錄執行啓動:
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運行正常:
中止memcached也很簡單,首先須要查一下memcached進程的pid,查詢命令以下:
pgrep memcached
查詢結果以下圖所示:
而後再根據pid來kill這個進程便可(-9表示強制殺死),命令以下:
kill -925645