CentOS 6.x 安裝 Memcached

一朱巨、Memcached 介紹


Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.

以上內(nèi)容來(lái)自 Memcached 官網(wǎng): http://memcached.org/

大致意思是:Memcached 是一個(gè)免費(fèi)開(kāi)源的基于內(nèi)存的分布式緩存系統(tǒng)喉悴,使用它來(lái)作為我們的 Web 應(yīng)用的緩存(包括字符串敲街,對(duì)象咖熟,頁(yè)面等等)以減少 Web 應(yīng)用對(duì)數(shù)據(jù)庫(kù)的負(fù)載缨恒。Memcached 的存儲(chǔ)數(shù)據(jù)格式是鍵值對(duì)的方式進(jìn)行存儲(chǔ)在內(nèi)存中臣嚣。

Memcached 官網(wǎng):

http://memcached.org/

GitHub 源碼地址:

https://github.com/memcached/memcached

Wiki 文檔地址:

https://github.com/memcached/memcached

二颅停、安裝環(huán)境


  • CentOS 6.7 x64 Linux
  • libevent
  • memcached

注:

  • 由于 Memcached 是基于 libevent (an event notification library) 事件驅(qū)動(dòng)庫(kù),因此需要依賴 libevent 庫(kù)具温。Libevent 官方如下:
http://libevent.org/
  • 本文下方的安裝過(guò)程中均使用 root 用戶操作
  • 本文部分內(nèi)容參考是官方的安裝文檔蚕涤,官方安裝文檔地址如下
https://github.com/memcached/memcached/wiki/Install

三、yum 安裝 Memcached


3.1 安裝

root 用戶 使用 yum 包管理工具安裝

[root@localhost ~]# yum install memcached
...

Dependencies Resolved
===================================================================
 Package         Arch         Version             Repository  Size
===================================================================
Installing:
 memcached       x86_64       1.4.4-5.el6         base        69 k
Installing for dependencies:
 libevent        x86_64       1.4.13-4.el6        base        66 k

Transaction Summary
===================================================================
Install       2 Package(s)

Total download size: 134 k
Installed size: 374 k
Is this ok [y/N]: y
...

從上面信息可以看到铣猩,在低版本的系統(tǒng) yum 倉(cāng)庫(kù)中維護(hù)的包版本會(huì)比較低揖铜。如果想要安裝最新的軟件包,可能需要更新 yum 的源达皿。

3.2 啟動(dòng)

[root@localhost ~]# service memcached start
Starting memcached:                                        [  OK  ]

3.3 驗(yàn)證

[root@localhost ~]# ps -ef | grep memcached
496       44981      1  0 17:35 ?        00:00:00 memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

從運(yùn)行的進(jìn)程可以看到天吓,memcached 已經(jīng)正常運(yùn)行了。其中峦椰,啟動(dòng)參數(shù)介紹如下:
-d 選項(xiàng)是啟動(dòng)一個(gè)守護(hù)進(jìn)程
-m 是分配給 Memcached 使用的內(nèi)存數(shù)量龄寞,單位是 MB,默認(rèn)是 64MB
-u 是運(yùn)行 Memcached 的用戶汤功,默認(rèn)是 memcached
-l 是監(jiān)聽(tīng)的服務(wù)器 IP 地址物邑,如果有多個(gè)地址的話
-p 是設(shè)置 Memcached 監(jiān)聽(tīng)的端口,默認(rèn)是 11211
-c 選項(xiàng)是最大運(yùn)行的并發(fā)連接數(shù)滔金,默認(rèn)是 1024色解,按照服務(wù)器的負(fù)載量來(lái)設(shè)定
-P 是設(shè)置保存 Memcached 的 pid 文件,默認(rèn)保存在 /var/run/memcached/memcached.pid

3.4 配置參數(shù)

查看配置文件
執(zhí)行如下命令查看 memcached 的配置文件:

[root@localhost ~]# rpm -qc memcached 
/etc/sysconfig/memcached

查看默認(rèn)參數(shù)
使用 yum 安裝的 memcached 的默認(rèn)配置參數(shù)如下:

[root@localhost ~]# cat /etc/sysconfig/memcached 
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

配置自定義參數(shù)
可以編輯 /etc/sysconfig/memcached 文件來(lái)配置自定義的 memcached 運(yùn)行參數(shù)鹦蠕,保存退出冒签,如下示例:

[root@localhost ~]# vim /etc/sysconfig/memcached
PORT="11211"
USER="root"
MAXCONN="1024"
CACHESIZE="128"
OPTIONS=""

重啟 memcached

[root@localhost ~]# service memcached restart
Stopping memcached:                                        [  OK  ]
Starting memcached:                                        [  OK  ]

驗(yàn)證

[root@localhost ~]# ps -ef | grep memcached | grep -v grep
root      45088      1  0 18:07 ?        00:00:00 memcached -d -p 11211 -u root -m 128 -c 1024 -P /var/run/memcached/memcached.pid

可以看到配置的自定義參數(shù)已經(jīng)生效。

3.5 配置開(kāi)機(jī)自啟動(dòng)

查看 chkconfig 狀態(tài)

[root@localhost ~]# chkconfig | grep memcached
memcached       0:off   1:off   2:off   3:off   4:off   5:off   6:off

配置 chkconfig
執(zhí)行如下命令钟病,配置 memcached 的開(kāi)機(jī)自啟

[root@localhost ~]# chkconfig memcached on

驗(yàn)證 chkconfig 配置

[root@localhost ~]# chkconfig | grep memcached
memcached       0:off   1:off   2:on    3:on    4:on    5:on    6:off

注:

  • memcached 開(kāi)機(jī)自啟的配置文件位于 /etc/rc.d/init.d/memcached萧恕,可以編輯此文件中的配置參數(shù)來(lái)自定義。

3.6 其他操作

當(dāng)我們使用 yum 命令安裝了一個(gè)軟件包時(shí)肠阱,感覺(jué)好像我們一下子不知道該怎么操作了票唆,軟件包安裝到哪兒了,怎么啟動(dòng)屹徘,怎么配置走趋?

這些問(wèn)題我們可以通過(guò)在 yum 安裝完成后執(zhí)行如下命令查看安裝的軟件包資源位置。

如下示例:

[root@localhost ~]# rpm -ql memcached
/etc/rc.d/init.d/memcached
/etc/sysconfig/memcached
/usr/bin/memcached
/usr/bin/memcached-tool
/usr/share/doc/memcached-1.4.4
/usr/share/doc/memcached-1.4.4/AUTHORS
/usr/share/doc/memcached-1.4.4/CONTRIBUTORS
/usr/share/doc/memcached-1.4.4/COPYING
/usr/share/doc/memcached-1.4.4/ChangeLog
/usr/share/doc/memcached-1.4.4/NEWS
/usr/share/doc/memcached-1.4.4/README
/usr/share/doc/memcached-1.4.4/protocol.txt
/usr/share/doc/memcached-1.4.4/readme.txt
/usr/share/doc/memcached-1.4.4/threads.txt
/usr/share/man/man1/memcached.1.gz
/var/run/memcached

rpm -ql 命令會(huì)列舉出已安裝的軟件包的相關(guān)資源噪伊,此命令不僅適用于使用 yum 安裝的 memcached 軟件包簿煌,也適用于其他 yum 安裝的軟件包。

四鉴吹、源碼安裝 Memcached


4.1 安裝 libevent-devel

如前方提到的 Memcached 依賴于 libevent姨伟,因此需要 libevent。root 用戶執(zhí)行如下命令查看是否已經(jīng)安裝了 libevent-devel

[root@localhost memcached-1.5.9]# rpm -qa libevent-devel

如果已經(jīng)安裝 libevent-devel

執(zhí)行如下命令查看 libevent-devel 的安裝目錄豆励,并記錄下來(lái)以供后面安裝 memcached 使用夺荒。

[root@localhost memcached-1.5.9]# rpm -ql libevent-devel 
/usr/bin/event_rpcgen.py
/usr/lib64/libevent.a
/usr/lib64/libevent.so
/usr/lib64/libevent_core.a
/usr/lib64/libevent_core.so
/usr/lib64/libevent_extra.a
/usr/lib64/libevent_extra.so
/usr/share/man/man3/evdns.3.gz
/usr/share/man/man3/event.3.gz

此處可以看到, libevent-devel 被安裝到 /usr/lib64/ 目錄下了(以 libevent 動(dòng)態(tài)鏈接來(lái)確定)

如果沒(méi)有安裝 libevent-devel
執(zhí)行如下命令安裝 libevent-devel

[root@localhost memcached-1.5.9]# yum install libevent-devel

同上獲取 libevent-devel 的安裝位置,yum 安裝的 libevent-devel 可以不用指定 libevent-devel 安裝位置技扼,不過(guò)此處建議都手動(dòng)方式獲取 libevent-devel 的安裝位置并在正文安裝時(shí)指定伍玖,以免被繞暈...

4.2 下載 Memcached

如下使用 wget 進(jìn)行下載,當(dāng)然也可以使用其他方式下載剿吻,此處不表窍箍。

[root@localhost memcached]# wget http://memcached.org/files/memcached-1.5.9.tar.gz

注:

  • 上面的鏈接中 1.5.9 表示 memcached 的版本,這是當(dāng)前的最新版本和橙,如果需要安裝其它版本仔燕,可以參考官方發(fā)版記錄中的信息 https://github.com/memcached/memcached/wiki/ReleaseNotes
  • 如果只想安裝最新的版本,可以將上面的下載 URL 改為 wget https://memcached.org/latest魔招,如下所示:
[root@localhost memcached]# wget http://memcached.org/lastest
[root@localhost memcached]# tar -zxvf lastest

4.3 解壓

解壓方式也很簡(jiǎn)單晰搀,前面下載的是 .tar.gz 格式的包,因此使用 tar 來(lái)解壓办斑。如果下載的是 .zip 文件外恕,則使用 unzip 來(lái)解壓,此處不多列舉乡翅。

[root@localhost memcached]# pwd
/data/software/memcached
[root@localhost memcached]# tar zxvf memcached-1.5.9.tar.gz

4.4 編譯

進(jìn)入解壓后的文件目錄鳞疲,并指定 libevent-devel 的安裝位置來(lái)編譯 memcached 并指定 memcached 的安裝目錄。

[root@localhost memcached]# cd memcached-1.5.9
[root@localhost memcached-1.5.9]# ./configure --with-libevent=/usr/lib64/ --prefix=/usr/local/memcached

注:

  • --with-libevent=/usr/lib64/ 表示的是指定 libevent 的安裝目錄蠕蚜,以上文中使用 rpm -ql 查看獲取的 libevent-devel 為準(zhǔn)
  • --prefix=/usr/local/memcached 表示指定 memcached 的安裝目錄
  • 此命令執(zhí)行后尚洽,并未安裝 memcached 到 /usr/local/memcached/ 目錄

4.5 安裝

編譯成功后,直接執(zhí)行如下命令即可安裝靶累。

[root@localhost memcached-1.5.9]# pwd
/data/software/memcached/memcached-1.5.9
[root@localhost memcached-1.5.9]# make && make install

4.6 Memcached 的啟動(dòng)

啟動(dòng)方式也非常簡(jiǎn)單腺毫,如下示例:

[root@localhost memcached-1.5.9]# /usr/local/memcached/bin/memcached -d -m 128 -p 11211 -u root 

啟動(dòng)參數(shù)前方有介紹,此處不再贅述挣柬。

4.7 驗(yàn)證 memcached

執(zhí)行如下命令查看 memcached 的進(jìn)程情況

[root@localhost memcached-1.5.9]# ps -ef | grep memcached | grep -v grep
root      49417      1  0 18:55 ?        00:00:00 /usr/local/memcached/bin/memcached -d -m 128 -p 11211 -u root

五潮酒、Memcached 簡(jiǎn)單使用


由于 Memcached 是基于文本行協(xié)議,因此我們可以方便地使用 Memcached邪蛔,比如通過(guò) telnet 我們就能實(shí)現(xiàn)對(duì) Memcached 中的數(shù)據(jù)的讀寫急黎。

[root@localhost memcached-1.5.9]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.

set foo 0 0 11 
hello world
STORED
get foo
VALUE foo 0 11
hello world
END

注:

  • set foo 0 0 11 命令的簡(jiǎn)單解釋
    set:設(shè)置鍵值的關(guān)鍵字,向 memcached 寫入數(shù)據(jù)時(shí)的關(guān)鍵字侧到。
    foo:向 memcached 寫入數(shù)據(jù) key勃教,前面提到過(guò) memcached 是基于鍵值(key-value)的存儲(chǔ)數(shù)據(jù)格式。
    0:第一個(gè) 0 是 flags 值匠抗,32 位無(wú)符號(hào)整數(shù)荣回,用于數(shù)據(jù)檢索,由用戶提供戈咳,并會(huì)在 memcached 中存儲(chǔ)
    0:第二個(gè) 0 是 exptime 的值,過(guò)期時(shí)間,以秒表示著蛙。0 表示不過(guò)期删铃,如果 exptime 大于 30 天,Memcached 將使用它作為 UNIX 時(shí)間戳過(guò)期踏堡。
    11:11 是指定要寫入 memcached 數(shù)據(jù)塊中的數(shù)據(jù)值的大辛匝洹( bytes )。比如顷蟆,hello world 每一個(gè)字母占一個(gè)字節(jié)(含空格)诫隅,就是 11 字節(jié)。
    noreply: (可選參數(shù)) 告知服務(wù)器不發(fā)送回復(fù)帐偎。

  • set foo 0 0 11 執(zhí)行成功后逐纬,會(huì)新起一行接受輸入數(shù)據(jù)值,輸入后按 "Enter" 鍵削樊,如果 返回 STORED 表示成功豁生,返回 ERROR 表示寫入失敗

  • get foo 命令比較簡(jiǎn)單,表示獲取數(shù)據(jù)漫贞, get 為關(guān)鍵字甸箱,foo 是鍵(key),不再細(xì)述迅脐。

六芍殖、總結(jié)


此文介紹了 CentOS 6.x 下 Memcached 的兩種安裝方式:一種是 yum 安裝谴蔑,另一種是源碼編譯安裝∈骷睿總體來(lái)說(shuō)都非常簡(jiǎn)單。

如果你不需要追求最新版本成榜,那么推薦使用 yum 安裝框舔,因?yàn)檎w安裝方便且簡(jiǎn)單刘绣。而如果你對(duì)版本有要求而且又需要實(shí)現(xiàn)更多的自定義功能,那么建議使用源碼編譯安裝挣输。

另外,此文只是介紹了 Memcached 的安裝及簡(jiǎn)單使用(本地)撩嚼,包括防火墻配置挖帘,遠(yuǎn)程客戶端連接及使用,項(xiàng)目中的實(shí)際使用場(chǎng)景等等將在后續(xù)的文章中進(jìn)行介紹恋技。

附錄: Memcached 啟動(dòng)腳本


[root@localhost memcached]# vi startup.sh

腳本內(nèi)容如下:

#! /bin/sh  
echo "Start to start memcached server $(date)..."  
  
MEMCACHED=/usr/local/memcached/bin/memcached  
  
usage()  
{  
     echo "usage: `basename $0` port"  
}  
 
if [ -n "$1" ]  
then  
{  
     pid=`ps aux|grep memcached|grep "$1" |grep -v grep|awk '{print $2}'`  
     if [ -n "$pid" ]  
     then  
     {  
          sleep 2  
          echo "kill memcached which port is $1 begin"  
          echo "pid:$pid"  
          kill -9 $pid  
          echo "kill memcached which port is $1 end"  
          sleep 2  
     }  
     fi  
     echo "begin to start memcached in port $1"  
     LOG_FILE=/var/log/memcached/memcached_$1.log  
     rm -f $LOG_FILE  
     $MEMCACHED -d -p $1 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid >> $LOG_FILE 2>&1
     echo "start memcached end"  
     tail -f $LOG_FILE  
}  
else  
{  
     usage  
     exit 1  
}  
fi

賦權(quán)限

[root@localhost memcached]# chmod 755 startup.sh

執(zhí)行:

[root@localhost memcached]# ./startup.sh 11211

其中 11211 是指定的 Memcached 的運(yùn)行端口

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拇舀,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蜻底,更是在濱河造成了極大的恐慌骄崩,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薄辅,死亡現(xiàn)場(chǎng)離奇詭異要拂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)站楚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門脱惰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人源请,你說(shuō)我怎么就攤上這事枪芒。” “怎么了谁尸?”我有些...
    開(kāi)封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵舅踪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我良蛮,道長(zhǎng)抽碌,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任决瞳,我火速辦了婚禮货徙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皮胡。我一直安慰自己痴颊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布屡贺。 她就那樣靜靜地躺著蠢棱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甩栈。 梳的紋絲不亂的頭發(fā)上泻仙,一...
    開(kāi)封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音量没,去河邊找鬼玉转。 笑死,一個(gè)胖子當(dāng)著我的面吹牛殴蹄,可吹牛的內(nèi)容都是我干的究抓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼垒探,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怠李!你這毒婦竟也來(lái)了捺癞?” 一聲冷哼從身側(cè)響起构挤,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤筋现,失蹤者是張志新(化名)和其女友劉穎矾飞,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豹绪,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞒津,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年巷蚪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了濒翻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡前联,死狀恐怖似嗤,靈堂內(nèi)的尸體忽然破棺而出届宠,到底是詐尸還是另有隱情乘粒,我是刑警寧澤灯萍,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布旦棉,位于F島的核電站药薯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏真屯。R本人自食惡果不足惜穷娱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一泵额、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凉馆,春花似錦亡资、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)幸斥。三九已至,卻和暖如春廊勃,著一層夾襖步出監(jiān)牢的瞬間经窖,已是汗流浹背梭灿。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工堡妒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留皮迟,地道東北人的诵。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓西疤,卻偏偏與公主長(zhǎng)得像代赁,于是被迫代替她去往敵國(guó)和親兽掰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Memcached 教程 Memcached是一個(gè)自由開(kāi)源的窖壕,高性能瞻讽,分布式內(nèi)存對(duì)象緩存系統(tǒng)熏挎。 Memcached...
    大熊_7d48閱讀 2,494評(píng)論 0 0
  • 一坎拐、MemCache簡(jiǎn)介 session MemCache是一個(gè)自由、源碼開(kāi)放都伪、高性能积担、分布式的分布式內(nèi)存對(duì)象緩存...
    李偉銘MIng閱讀 3,816評(píng)論 2 13
  • 1磅轻、memcache的概念逐虚? Memcache是一個(gè)高性能的分布式的內(nèi)存對(duì)象緩存系統(tǒng)谆膳,通過(guò)在內(nèi)存里維護(hù)一個(gè)統(tǒng)一的巨...
    桖辶殤閱讀 2,239評(píng)論 2 12
  • 前面章節(jié)我會(huì)先簡(jiǎn)要說(shuō)明一下安裝過(guò)程, 后面章節(jié)我會(huì)記錄在安裝期間踩過(guò)的坑.Linux 下編譯軟件的步驟參見(jiàn)Linu...
    patiencing閱讀 3,194評(píng)論 1 3
  • 今天看了一部電影《危城》买雾,陳木勝導(dǎo)演作品杨帽,除了有帥哥美女養(yǎng)眼以外,更看出了一些別的東西晃危,想聊聊老客。 故事的大意是講,...
    L悶兒閱讀 529評(píng)論 0 0