您的位置:首页 > 数据库 > Memcache

MemCached的使用笔记

2008-06-27 10:58 323 查看
MemCached的使用筆記
當系統越來越多人使用,Scalability的問題就越來越重要了,在很多的系統中,瓶頸是出在Database,要解決這個問題,當然方法很多,Magic Multi-Connections是一個讓你使用Database的Duplicate功能,讓查詢分散在多台機器中,減輕系統的負載。那MemCached也是其中一種,將query的結果放在Ram中,當短時間內,有許多次的相同的query的時候,就可以直接從Ram中取出,而不需要一次又一次的query。

系統環境

我所使用的OS是RHEL 5,Ruby 1.8.5,Rails 1.2.3。

安裝Libevent

因為MemCached需要用到libevent,所以首先你需要到http://monkey.org/~provos/libevent/下載libevent-1.3b.tar.gz並解壓縮。

在libevent目錄中執行./configure –prefix=/usr & make & make install這樣,會將libevent存在/usr/lib中,我們就不用另外設定lib path了。

安裝MemCached

第一步當然是要到MemCached的官網去下載MemCached了。然後將下載下來的檔案解壓縮。

,然後到解壓縮的目錄中執行./configure –prefix=/usr/local/memcached & make & make install。

如果沒有錯誤訊息,那恭喜你,你安裝完成了。

啟動memcached服務

到目錄/usr/local/memcached/bin中,然後執行

./memcached -d -m 2048 -l 127.0.0.1 -p 11211 -u root -c 512

-d 表示這是daemon,

-m 表示會使用幾MB的記憶體來存放資料,

-l表示會listen的IP位址,

-p則是所listen的port,

-u 啟動的user為誰,由於memcached預設不可以由root來啟動,所以你如果要用root來啟動,就要加。

-c 同時間可以有多少個connection。

安裝memcache-client

老方法:gem install memcache-client

Memcache 初始設定

我的方式是會建一個全域變數(CACHE),而所有的memcache access都透過他。所以在系統開始的時候就要建立,所以我把設定直寫在config/environment.rb中。

memcache_options   compression  false  		debug  false 			namespace   			readonly  false urlencode  false memcache_servers     cache_params  memcache_servers memcache_options.flatten CACHE  MemCache.new cache_params

記得喔,這一段是要放在 Rails::Initializer.run do |config| … end 之外喔。

ps. 這一個設定是從thegiive的blog抄來的。

最簡單的測試

我在environment.rb中加了一行:

CACHE.set(“testkey”,“testvalue”,5)

然後我建了一個controller 就叫做Result。在result_controller中建立一個index method。

Class ResultController < ApplicationController

def index

value=CACHE.get(“testkey”)

if value!=nil

render :text=>”<h1>成功 : ”+value+”</h1>”

else

render :text=>”<h1>失敗</h1>”

end

end

然後啟動WEBrick,看看網址http://127.0.0.1/result的結果。

開機啟動Memcached

你可以建立一個sh檔案,放在/etc/rc.d/init.d中,我原本是建了一個最簡單的,裡面就一行:

/usr/local/memcached/bin/memcached -d -m 256 -l 127.0.0.1 -p 4130 -u root

我在網路上有找到一個很完整的,在http://www.mavenwire.com/resources/files/memcached

各位可以拿來改改,然後試試看。

你要一開機就執行的話,執行下列指令(要有root 權限喔)

chkconfig memcached on

然後你可以利用下列指令就啟動memcached

/etc/init.d/memcached start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息