`

berkeley db 安装

 
阅读更多

NoSQL是现在互联网Web2.0时代备受关注的技术之一,被用来存储大量的非关系型的数据。Berkeley DB作为一款优秀的Key/Value存储引擎自然也在讨论之列。最近使用BDB来发一个KV系统,并将这段时间的BDB的学习和使用经验记录如下。(项目中使用了BDB4.8.30版本,本文所有涉及的具体问题都基于该版本)。

 

1. Berkeley DB的简介

Berkeley DBBDB)是一个高性能的嵌入式数据库编程库(引擎),它可以用来保存任意类型的键/值对 (Key/Value Pair),而且可以为一个键保存多个数据。Berkeley DB可以支持数千的并发线程同时操作数据库,支持最大256TB的数据。

BDB提供诸如C语言,C++JavaPerlPythonTcl等多种编程语言的API,并且广泛支持大多数类Unix操作系统和Windows操作系统以及实时操作系统(如 VxWorks)。

1991年,Berkeley DB的第一个版发行(Linux系统也在这一年诞生),其最初的开发目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现,该版本还包含了B+树数据访问算法。

1992年,BSD UNIX4.4发行版中包含了Berkeley DB1.85版。基本上认为这是Berkeley DB的第一个正式版。

1996年,Sleepycat软件公司成立,提供对Berkeley DB的商业支持。

2006年,SleepycatOracle收购,当时最新版本是4.7.25

 以上来自:http://blog.sina.com.cn/s/blog_502c8cc40100yqkj.html

 

下面说一下实战吧:

1. 安装

    http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html

    下载并解压。

     

cd  db-xxx
cd build_unix
./dist/configure --prefix=/home/work/opt/berkeleydb  --enable-cxx
#其中 --enable-cxx来启动编译c++的相关选项,如果没有enable那么编译出的就不能使用berkeley db c++对应的接口。

之后:
make
make install

 

  添加对应的环境变量:

  

  C_INCLUDE_PATH=your_dir:$C_INCLUDE_PATH

  CPLUS_INCLUDE_PATH=your_dir:$CPLUS_INCLUDE_PATH

  LD_LIBRARY_PATH=your_dir:$LD_LIBRARY_PATH

  LD_RUN_PATH=your_dir:$LD_RUN_PATH

 

2. 测试:

#include <iostream>
#include <stdio.h>

#include <db_cxx.h>
#define DATABASE "test.db"

using namespace std;
int main()
{
	u_int32_t flag = DB_CREATE;
	Db db(NULL, 0);
	try {
		db.open(NULL, DATABASE, NULL, DB_BTREE, flag, 0);
	} catch (std::exception &e) {
		printf("std eception happens\n");
		return 2;
	}

	Dbt key, data;
	for (int i = 0; i < 100; ++i)
	{
		Dbt	key(&i, sizeof(int));
		Dbt	data(&i, sizeof(int));
		db.put(0, &key, &data, DB_NOOVERWRITE);
	}

	Dbc	*dbcp, *dbcp1;
	db.cursor(NULL, &dbcp, 0);
	while(dbcp->get(&key, &data, DB_NEXT) == 0 )
	{
		printf("key:%d#value:%d\n",*((int*)key.get_data()), *((int*)data.get_data()));
	}

	dbcp->close();
	db.sync(0);
	try {
		db.close(0);
	} catch (std::exception &e) {
		printf("when clsoe std exception happens\n");
	}
	printf("yes\n");
	return 0;
}

 

编译:   g++ test_bdb.cpp -ldb_cxx

         ./a.tout

 

 

 

 

 

 

分享到:
评论

相关推荐

    Berkeley DB4.8以上各版本

    Berkeley DB4.8以上各版本,已经亲测过哪些版本可与redhat6.5兼容,见附件名称备注。

    Berkeley DB

    Berkeley DB(BDB)是OpenLDAP后台数据库的默认配置,因此在安装OpenLDAP之前应先安装BDB。

    Berkeley DB Java 版 4.0.92

    Oracle Berkeley DB Java 版是一个开源的、可嵌入的事务存储引擎,是完全用 Java 编写的。与 Oracle Berkeley DB 类似,Oracle Berkeley DB Java 版在应用程序的地址空间中执行,没有客户端/服务器通信的开销,从而...

    Berkeley DB 读取样例

    嵌入式数据库Berkeley DB Java Edition Berkeley DB的使用 使用Berkeley DB的一般步骤 创建、打开、操作、关闭数据库环境Environment

    Berkeley DB数据库 6.2.32 64位

    Berkeley DB 6.2.32_64.msi Windows 64-bit binary installer Berkeley DB是一个嵌入式数据库,为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。 主要特点: 嵌入式:直接链接到应用程序中,与...

    BerkeleyDB测试程序

    BerkeleyDB测试程序 包含散列文件入库,和读取的速度的测试

    Berkeley DB 5.3.21.tar

    Berkeley DB 5.3.21.tar,你也可以去http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html下载最新版

    Berkeley DB文章集合

    Berkeley DB文章集合

    BerkeleyDB

    BerkeleyDB的java应用jar包

    Berkeley DB数据库最新版

    Berkeley DB6.0.20 Berkeley DB BDB Berkeley DB数据库

    Berkeley DB C++编程入门教

    介绍DB API的设置与使用的快速入门手册,目标是提供一个快速有效地机制,能让你进入Berkeley DB研发的世界。在本文中侧重于C++语言的研发人员,以及研究进城内数据管理解决方案的资深架构师。

    berkeley db使用手册

    berkeley db 使用手册

    sqlite PK Berkeley DB

    sqlite 和Berkeley db各方面 的比较

    BerkeleyDB Java Edition用户手册

    Java版本的Berkeley DB用户手册,找了好久

    Berkeley DB数据库支持事物的C++语言入门教程

    本文描述了如何在Berkeley DB中使用事务(Transaction)。它简要介绍了事务是如何保护你的应用的数据的...本书假设你已经了解BerkeleyDB的基本架构知识(这些知识在&lt;Getting Started with Berkeley DB Guide&gt;一书中。)

    BerkeleyDB-0.26

    BerkeleyDB和Sqlite是当前最流行的嵌入式开源数据库。

    Berkeley DB 资料

    Berkeley DB 批量插入更新与删除用法示例 Berkeley 函数接口 Berkeley DB 由浅入深 SQL 开发人员 Oracle Berkeley DB 指南 Berkeley DB参考手册

    SQL 开发人员 Oracle Berkeley DB 指南

    不是所有的 SQL 应用程序都应该在 Oracle Berkeley DB 实施( Oracle Berkeley DB 是一个开放源的嵌入式数据库引擎,提供了快速、可靠、本地的持久性,无需管理),但如果您有一系列相对固定的查询且很关心性能,...

    BerkeleyDB-JE je-6.0.11

    Oracle BerkeleyDB-JE je-6.0.11

Global site tag (gtag.js) - Google Analytics