Linux下安装搭建Memcached集群环境
由于項(xiàng)目需要,需要搭建memcached集群環(huán)境,遂開始調(diào)研相關(guān)技術(shù)
網(wǎng)絡(luò)上有不少linux下安裝memcached的教程,對(duì)于我這個(gè)linux零基礎(chǔ)的來說,想立馬在linux下安裝memcached,似乎還是有點(diǎn)阻礙。參照了不少網(wǎng)絡(luò)教程,安裝過程中總是會(huì)出錯(cuò),特別是在安裝magent的時(shí)候,總是會(huì)報(bào)錯(cuò),而相關(guān)教程中,很少提及如何解決報(bào)錯(cuò)問題,經(jīng)過兩天的折騰,終于摸索并解決了所有的報(bào)錯(cuò)問題,遂整理了一套“傻瓜”式的安裝過程,避免安裝過程中的報(bào)錯(cuò)
----------------------------------------------------------------------------------------------------------------------------------------
什么是Memcached
Memcached 是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對(duì)象來減少讀取數(shù)據(jù)庫的次數(shù),從而提供動(dòng)態(tài)、數(shù)據(jù)庫驅(qū)動(dòng)網(wǎng)站的速度。
Memcached基于一個(gè)存儲(chǔ)鍵/值對(duì)的HashMap,它并不提供冗余(復(fù)制其HashMap條目),當(dāng)某個(gè)服務(wù)器停止運(yùn)行或崩潰了,所有存放在服務(wù)器上的鍵/值對(duì)都將丟失。但目前Memcached的客戶端和代理程序可以提供多服務(wù)器的并聯(lián)方式,可以提供一定的處理能力。
Memcached與其他分布式緩存的區(qū)別
Memcached與其它常用的分布式緩存(例如EhCache、OSCache、JBoss Cache)最主要的區(qū)別在于Memcached采用集中式緩存方式(即一臺(tái)或多臺(tái)緩存服務(wù)器為所有應(yīng)用系統(tǒng)提供緩存能力),自身不提供集群能力,不提供緩存復(fù)制功能;而其他分布式緩存系統(tǒng)采用分布式緩存方式,各個(gè)應(yīng)用系統(tǒng)內(nèi)部提供數(shù)據(jù)緩存的能力,多個(gè)緩存間采用組播或點(diǎn)對(duì)點(diǎn)的方式進(jìn)行緩存同步。
在性能上來看,Memcached比其它分布式緩存系統(tǒng)低一半以上(未考慮大量數(shù)據(jù)在其它緩存系統(tǒng)進(jìn)行復(fù)制的影響);但從管理方面來看,Memcached的緩存采用集中管理的模式,應(yīng)用系統(tǒng)可以水平擴(kuò)展,而其它分布式緩存在水平擴(kuò)展的同時(shí),必須同時(shí)調(diào)整緩存復(fù)制策略,一旦應(yīng)用服務(wù)器節(jié)點(diǎn)大量擴(kuò)展,對(duì)于緩存服務(wù)器間的數(shù)據(jù)復(fù)制將成幾何數(shù)增加。
----------------------------------------------------------------------------------------------------------------------------------------
環(huán)境:CentOS release 6.3
?
搭建memcached集群環(huán)境,先要安裝gcc?
# yum -y install gcc?
在root目錄下創(chuàng)建soft_hhf目錄
# cd /root/
# mkdir soft_hhf?
1.編譯安裝libevent
# cd /root/soft_hhf/
# wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz?
# tar -xvf libevent-2.0.21-stable.tar.gz
# cd libevent-2.0.21-stable
# ./configure --prefix=/usr
# make&&make install
# cd ../?
2.編譯安裝Memcached
# cd /root/soft_hhf/
# wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
# tar -xvf memcached-1.4.15.tar.gz
# cd memcached-1.4.15/
# ./configure --with-libevent=/usr
# make&&make install
# cd ../
安裝完成后會(huì)把memcached放到 /usr/local/bin/memcached
?
3.編譯安裝magent-0.6到/usr/local/下(推薦安裝magent-0.5穩(wěn)定版本,下面有說明? 日期:2013.01.04)
# cd /usr/local
# mkdir magent
# cd magent/
# wget http://memagent.googlecode.com/files/magent-0.6.tar.gz
# tar zxvf magent-0.6.tar.gz
# vi ketama.h?
在開頭加入
#ifndef SSIZE_MAX
# define SSIZE_MAX????? 32767
#endif
# vim Makefile?(magent-0.6版本)
LIBS = /usr/lib64/libevent.a /usr/lib64/libm.a 改為 LIBS = -lrt /usr/lib64/libevent.a /usr/lib64/libm.a?
CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64) 改為 CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64)
?
# vim Makefile?(magent-0.5版本)
CFLAGS = -Wall -O2 -g 改為 CFLAGS = -lrt -Wall -O2 -g
# cp /usr/lib/libevent.a /usr/lib64
# ln -s /usr/lib64/libm.so /usr/lib64/libm.a
# /sbin/ldconfig
# sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
# make
# cp magent /usr/bin/magent
# cd ../
?
測試memcached是否安裝成功:
1.啟動(dòng)一個(gè)memcached進(jìn)程
# memcached -m 1 -u root -d -l 192.168.1.151 -p 11211
2.查看是否啟動(dòng)成功了
# ps aux|grep memcached
顯示兩行?root,則說明安裝成功了,如下所示:
root???? 11952? 0.0? 0.0 331112? 1104 ???????? Ssl? 15:09?? 0:00 memcached -m 1 -u root -d -l 192.168.1.151 -p 11211
root???? 11959? 0.0? 0.0 103240?? 796 pts/1??? S+?? 15:09?? 0:00 grep memcached
?
測試magent是否安裝成功:
1.啟動(dòng)一個(gè)magent進(jìn)程
# magent -u root -n 51200 -l 192.168.1.151 -p 12000 -s 192.168.1.151:11211
2.查看是否啟動(dòng)成功了
# ps aux|grep magent
顯示兩行?root,則說明安裝成功了,如下所示:
root???? 11720? 0.0? 0.0? 10972?? 588 ???????? Ss?? 13:51?? 0:00 magent -u root -n 51200 -l 192.168.1.151 -p 12000 -s 192.168.1.151:11211 -s 192.168.1.151:11212 -b 192.168.1.151:11213
root???? 11974? 0.0? 0.0 103240?? 792 pts/1??? R+?? 15:12?? 0:00 grep magent
注:?之前的安裝過程中,我總是只顯示一行:root???? 11974? 0.0? 0.0 103240?? 792 pts/1??? R+?? 15:12?? 0:00 grep magent,但是執(zhí)行magent命令又不報(bào)錯(cuò),可是查看magent進(jìn)程,老是沒有,老是啟動(dòng)不起來,其實(shí)還是magent沒有安裝成功,所以這邊必須要看到兩行,才能說明啟動(dòng)成功。
?
好了,如果你順利安裝成功,那就恭喜你了,可以繼續(xù)深入學(xué)習(xí)memached的相關(guān)知識(shí)了
?
對(duì)于安裝過程中的報(bào)錯(cuò)問題,我會(huì)在下一篇文章中整理出來,供自己以后查閱
?
接著就是進(jìn)行測試學(xué)習(xí)了,首先確保telnet服務(wù)安裝了
查看telnet是否安裝??
查看telnet客戶端是否安裝:
# rpm -q telnet?
若無安裝,則執(zhí)行:
# yum -y install telnet?
查看telnet服務(wù)端是否安裝:
# rpm -q telnet-server?
若無安裝,則執(zhí)行:
# yum -y install telnet-server
?
注:剛測試發(fā)現(xiàn)magent-0.6雖是最新版本,但是還存在問題,不穩(wěn)定,第二次訪問magent始終會(huì)堵塞在那里,只能set一個(gè)值。測試了magent-0.5是穩(wěn)定版本,沒有出現(xiàn)只能set一個(gè)值的現(xiàn)象,遂推薦安裝magent-0.5版本
?
----------------------------------------------------------------------------------------------------------------------------------------
?
magent是一款開源的Memcached代理服務(wù)器軟件,其項(xiàng)目網(wǎng)址為:http://code.google.com/p/memagent/
magent is a simple but useful proxy program for memcached servers.
It features:
keeps connections to memcached servers
supports following memcached commands
get gets
delete
incr decr
add set replace prepend append
cas
event-driven by using libevent library
supports ketama algorithm
backup servers farm
unix domain socket
Usage:
? -h this message
? -u uid
? -g gid
? -p port, default is 11211. (0 to disable tcp support)
? -s ip:port, set memcached server ip and port
? -b ip:port, set backup memcached server ip and port
? -l ip, local bind ip address, default is 0.0.0.0
? -n number, set max connections, default is 4096
? -D do not go to background
? -k use ketama key allocation algorithm
? -f file, unix socket path to listen on. default is off
? -i number, max keep alive connections for one memcached server, default is 20
? -v verbose
Changelog:
2010/4/14: memcached agent 0.6
add connection keepalive handler
bug fix, more robust, more debug messages
Examples:
? magent -s 10.1.2.1 -s 10.1.2.2:11211 -b 10.1.2.3:14000 -v
Notes:
current magent's speed is about 80% of memcached's. finding way to speed it up(not good)
adding backup server does no harm to magent's performance. (good)
magent's cpu usage is less than memcached's and has very little memory usage. (good)
magent-0.5.tar.gz?(16 KB)
下載次數(shù): 23
magent-0.6.tar.gz?(16.9 KB)
下載次數(shù): 23
libevent-2.0.21-stable.tar.gz?(830.8 KB)
下載次數(shù): 9
memcached-1.4.15.tar.gz?(316.8 KB)
下載次數(shù): 14
轉(zhuǎn)載于:https://blog.51cto.com/wenzengliu/1591002
總結(jié)
以上是生活随笔為你收集整理的Linux下安装搭建Memcached集群环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NOD32升级ID获取器For流星无语更
- 下一篇: JS的手写TRIM函数