memcachedb
开源项目
memcachedb是 一个开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景。
简介
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运行库的路径添加到系统配置里面
#重载系统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
参考资料
最新修订时间:2024-01-18 01:36
目录
概述
简介
参考资料