memcachedb

memcachedb是 一個開源項目,給memcached分散式快取伺服器添加了Berkeley DB的持久化存儲機制和異步主輔複製機制,讓memcached具備了事務恢復能力、持久化能力和分散式複製能力,非常適合於需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的套用場景。

基本介紹

  • 中文名:memcachedb
  • 類型:開源項目
  • 適合場合:需要超高性能讀寫速度的套用場景
  • 前端memcached的網路層
  • 後端BerkeleyDB存儲
簡介,性能測試,編譯及安裝,

簡介

MemcacheDB是一個分散式、key-value形式的持久存儲系統。它不是一個快取組件,而是一個基於對象存取的、可靠的、快速的持久存儲引擎。協定跟memcache一致(不完整),所以很多memcached客戶端都可以跟它連線。MemcacheDB採用Berkeley DB作為持久存儲組件,故很多Berkeley DB的特性的他都支持。
我們是站在巨人的肩膀上的。MemcacheDB的前端快取是Memcached
前端:memcached的網路層
後端:BerkeleyDB存儲
寫速度:從本地伺服器通過memcache客戶端(libmemcache)set2億條16位元組長的key,10位元組長的Value的記錄,耗時16572秒,平均速度12000條記錄/秒。
讀速度:從本地伺服器通過memcache客戶端(libmemcache)get100萬條16位元組長的key,10位元組長的Value的記錄,耗時103秒,平均速度10000條記錄/秒。
·支持的memcache命令
get,set,add,replace
incr,decr
delete
stats
flush_all
·私有命令
db_checkpoint,db_archive
db_ismaster,db_whoismaster(forreplication)

性能測試

1.環境
OS:Linux,Ubuntu7.0464-bit
Memory:4G
CPU:Intel(R)Pentium(R)DCPU2.66GHz
SCSIDISK,ext3filesystem
libevent1.3e
Memcached1.2.4
BerkeleyDB4.6.21
Java1.6.0
2.測試方法
client/server在同一機上,使用ethernetinterface連線,不是localhost
本Linux同時在作ADSLroutegateway,可能會對測試造成小量影響。
JAVACLIENT,使用3執行緒
Key:數字,1~100萬
數據:100位元組字元串
3.測試結果
Memcached寫速度
平均速度:16222次/秒
最大速度18799次/秒
Memcached讀速度
平均速度:20971次/秒
最大速度22497次/秒
Memcachedb寫速度
平均速度:8958次/秒
最大速度10480次/秒
Memcachedb讀速度
平均速度:6871次/秒
最大速度12542次/秒
由於硬體環境,網路環境,執行緒數,程式語言不同,可能測試結果差別也很大,本測試結果只起相對參考作用。即比較memcached/memcachedb在相同環境下的性能區別。

編譯及安裝

1.先安裝libevent
#tarzxvflibevent-1.2.tar.gz
#cdlibevent-1.2
#./configureprefix=/usr
#make
#makeinstall
2.測試libevent是否安裝成功:
#ls-al/usr/lib|greplibevent
lrwxrwxrwx1rootroot2111??1217:38libevent-1.2 so 1->libevent-1.2 so 1.0.3
-rwxr-xr-x1rootroot26354611??1217:38libevent-1.2 so.1.0.3
-rw-r–r–1rootroot45415611??1217:38libevent.a
-rwxr-xr-x1rootroot81111??1217: 38libevent.a
lrwxrwxrwx1rootroot2111??1217: 38libevent so->libevent-1.2 so.1.0.3
還不錯,都安裝上了。
3.安裝BerkeleyDb
tar-zxvfdb-4.6.19.tar.gz
#需要進入特定作業系統編譯環境,更常規軟體的編譯有些區別
cddb-4.6.19/build_unix/
#然後才能夠開始編譯
../dist/configure
make&&makeinstall
#如果沒有指定特殊安裝路徑,編譯完成,需要將BerkeleyDb運行庫的路徑添加到系統配置裡面
echo"/usr/local/BerkeleyDB.4.6/lib/">>/etc/ld.so.conf
#重載系統Ld運行庫
ldconfig
4.安裝memcachedb,同時需要安裝中指定libevent的安裝位置:
#cd/tmp
#tar-zxvfmemcachedb-1.0.3.tar.gz
#cdmemcachedb-1.0.3
#./configure–with-libevent=/usr
#make
#makeinstall
如果中間出現報錯,請仔細檢查錯誤信息,按照錯誤信息來配置或者增加相應的庫或者路徑。
安裝完成後會把memcachedb放到/usr/local/bin/memcachedb,
5.測試是否成功安裝memcachedb:
#ls-al/usr/local/bin/mem*
-rwxr-xr-x1rootroot13798611??1217:39/usr/local/bin/memcachedb
6.啟動memcachedb
memcachedb-p11212-d-r-uroot-l192.168.50.117-H/data/mdb_11212-N-P/tmp/memcachedb.pid
7.如查報BerkeleyDb的檔案找不到的可以加上下面這句話
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/BerkeleyDB.4.6/lib

相關詞條

熱門詞條

聯絡我們