Ubuntu 9.04中安装Memcachedb

最近的一个项目中要求实现一个分布式数据库。在网上找了一些资料,发现有不少资料都提到了Memcachedb,以前使用Memcached做过Hibernate的二级缓存,不知道这个Memcachedb是个什么动动。后来通过网上找到这个是新浪互动社区事业部贡献的一个开源项目,性能和稳定性都不错,据说新浪的几个重头产品都在使用。好了开篇的题外话就说到这里。

下面简要介绍下Memcachedb,之后详细的介绍下如何安装该数据库(其实Memcachedb并不是一个严格意义上的数据库)。Memcachedb是一款支持高并发的分布式持久存储系统,对任何原有memcached客户端来讲,它仍旧是个memcached(也就说现有的memcachedb仍然可以像访问memcached一样来访问memcachedb),但是,它的数据是可以持久存储的。它使用memcached的网络层,用Berkeley DB来实现数据的持久化存储。下面从网上找到的一份关于Memcachedb读写性能测试的资料(但是我还没有测试过,仅供参考)。

写速度:从本地服务器通过memcache客户端(libmemcache) set 2亿条16字节长的key,10字节长的Value的记录,耗时16572秒,平均速度12000条记录/秒。
读速度:从本地服务器通过memcache客户端(libmemcache) get 100万条16字节长的key,10字节长的Value的记录,耗时103秒,平均速度10000条记录/秒。

 

再简单说下Berkeley DB(BDB),Berkeley DB(BDB)是一个高性能的,嵌入数据库编程库,和C语言,C++,Java,Perl,Python,Tcl以及其他很多语言都有应用程序编程界面。Berkeley DB可以保存任意类型的键/值对,而且可以为一个键保存多个数据。Berkeley DB可以支持数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各

种操作系统包括大多数Unix/Linux类操作系统和Windows操作系统以及实时操作系统。

 

最后来讲下Ubuntu Linux中安装Memcachedb的步骤。安装前需要下载最新的libevent,memcachedb,Berkeley DB,下载的版本、地址清单如下:

Libevent 1.4.13(最新的稳定版本):http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
Memcachedb 1.2.0(该版本支持Berkeley DB 4.7):http://memcachedb.googlecode.com/files/memcachedb-1.2.0.tar.gz
Berkeley DB 4.7.25(BDB 4.7的最新版本):http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz 

 

程序下载好了我们就开始安装吧(操作系统:Ubuntu 9.04):
先安装libevent,因为在安装Memcachedb的时候需要用到。安装步骤:

root@estone-desktop:/home/estone/download$ tar -zxvf libevent-1.4.13-stable.tar.gz 
root@estone-desktop:/home/estone/download$ cd libevent-1.4.13-stable 
root@estone-desktop:/home/estone/download/libevent-1.4.13-stable$ ./configure --prefix=/usr/local/libevent && make && make install

 
之后安装Berkeley Db 。命令如下:

root@estone-desktop:/home/estone/download$ tar -zxvf db-4.7.25.tar.gz 
root@estone-desktop:/home/estone/download$ cd db-4.7.25 
root@estone-desktop:/home/estone/download/db-4.7.25$ cd build_unix/ 
root@estone-desktop:/home/estone/download/db-4.7.25/build_unix$ ../dist/configure 
root@estone-desktop:/home/estone/download/db-4.7.25/build_unix$ make &&make install

 
这里需要注意的是如果你没有指定特殊安装路径,编译完成后,需要将Berkeley Db运行库的路径添加到系统配置里,命令如下:

root@estone-desktop:/home/estone/download/db-4.7.25/build_unix$echo "/usr/local/BerkeleyDB.4.7/lib/" >> /etc/ld.so.conf 

 
然后重载系统ldconfig,命令如下:

root@estone-desktop:/home/estone/download/db-4.7.25/build_unix$ ldconfig 

 
之后安装Memcachedb,命令如下:

root@estone-desktop:/home/estone/download$ tar zxvf memcachedb-1.2.0.tar.gz 
root@estone-desktop:/home/estone/download$ cd memcachedb-1.2.0 
root@estone-desktop:/home/estone/download/memcachedb-1.2.0$ ./configure --prefix=/usr/local/memcachedb-1.2.0 --with-libevent=/usr/local/libevent --
enable-threads
root@estone-desktop:/home/estone/download/memcachedb-1.2.0$ make && make install

 
这样Memcachedb的安装过程就完成了,为了确保该服务能正常运行,还是测试一下:
启动Memcachedb进程

root@estone-desktop:/home/estone/download$ memcachedb -p21201 -d -r -u root -f 21201.db -H /memcachedb/test -N -P /memcachedb/test/21201.pid 
memcachedb: error while loading shared libraries: libdb-4.7.so: cannot open shared object file: No such file or directory 

 
这里出现了一个错误(红字部分),提示找不到BDB的共享对象的文件。我们只要使用下面的命令将该文件加入到系统路径中就可以了(若提示找不到memecachedb命令可以使用绝

对路径):

root@estone-desktop:/home/estone/download$ export D_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/BerkeleyDB.4.7/lib 

 
然后重新启动:

root@estone-desktop:/home/estone/download$ memcachedb -p21201 -d -r -u root -f 21201.db -H /memcachedb/test -N -P /memcachedb/test/21201.pid
使用Telnet进行测试,如果能正常进入,说明服务器已经启动:
root@estone-desktop:/home/estone/download$ telnet 127.0.0.1 21201 

 到此整个Memcachedb的安装过程就完成了。我也是初次使用Memcachedb,如果有好的发现,再来分享给大家,呵呵。

你可能感兴趣的:(编程,linux,unix,ubuntu,memcached)