`

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 db installation

    **知识点:Berkeley DB 安装与构建指南** 在IT领域,Berkeley DB(BDB)是一款由Oracle公司维护的高性能嵌入式数据库系统,它以其高效、可靠和灵活的特点在众多应用程序中得到了广泛的应用。Berkeley DB支持多种...

    Berkeley DB4.8以上各版本

    Berkeley DB是一款由Oracle公司开发的嵌入式数据库系统,被广泛应用于许多软件项目中,尤其是在需要快速、轻量级数据存储解决方案的场景下。它提供了键值对存储模式,适用于构建高性能的数据缓存和数据库应用程序。...

    Berkeley DB数据库最新版

    在提供的“db-6.0.20.msi”文件中,包含了Berkeley DB的安装程序。用户可以通过这个安装包进行安装和升级,以获取最新的功能和修复。 **9. 性能优化** BDB允许用户调整各种参数以优化性能,如缓存大小、事务日志...

    Berkeley DB参考资料

    BerkeleyDB 多库联合操作 (Secondary Databases) - **3.1 二级数据库介绍** - **概念解释**:二级数据库是对主数据库的一个索引,用于提高查询效率。 - **应用场景**:快速查找、数据统计等。 - **3.2 创建二级...

    Berkeley DB C++编程入门教

    在“BerkeleyDB概念”部分,文档会介绍Berkeley DB的基本概念,如BTree和Hash数据库的访问方式选择,以及Queue和Recno之间的选择。 接下来,教程会讨论数据库的限制与可移植性、环境设置、异常处理和错误返回。然后...

    Berkeley DB数据库 6.2.32 64位

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

    Berkeley DB参考手册PDF版本

    #### 1.1 Introduction to BerkeleyDB Cursor - **定义与作用**:游标是Berkeley DB提供的一种高效访问数据库记录的方式,通过游标可以实现对数据库中记录的查找、修改和删除等操作。 - **应用场景**:适用于需要...

    BerkeleyDB测试程序

    **BerkeleyDB测试程序** BerkeleyDB是一款轻量级、高性能、嵌入式的数据库系统,由Oracle公司开发。它提供了一种键值对存储模型,适用于需要快速存取大量数据的应用场景,尤其在分布式系统、嵌入式系统以及对性能有...

    BerkeleyDB的参考书集

    《BerkeleyDB的参考书集》是一份包含全面的BerkeleyDB相关书籍和文档的资源集合,涵盖了从基础到高级的各个层次,旨在为开发者提供深入理解和应用BerkeleyDB的全面指南。BerkeleyDB,简称BDB,是一个开源的、高性能...

    BerkeleyDB Manual C/C++

    它通常会提供快速上手的教程,介绍BerkeleyDB的基本概念、安装步骤、基本API的使用,以及如何创建、打开、关闭数据库。此外,还会涉及数据的读写操作、索引创建、数据库备份和恢复等基础操作。 最后,`BerkeleyDB-...

    Berkeley DB 4.8.30

    3. **编译**:进入解压后的目录,执行`./configure --prefix=/usr/local/BerkeleyDB.4.8`进行配置,指定安装路径,然后使用`make`进行编译,最后用`sudo make install`安装。 4. **配置Open LDAP**:在Open LDAP的...

    sqlite PK Berkeley DB

    ### sqlite与Berkeley DB的深度比较 在信息技术领域,数据库技术是支撑现代软件应用的关键基石之一,其中,sqlite和Berkeley DB作为两款优秀的开源嵌入式数据库管理系统,因其轻量级、高性能及易于集成的特性,在...

    Berkeley DB 读取样例

    Berkeley DB 是一款高效、轻量级的嵌入式数据库系统,特别适合于需要本地存储且对性能有高要求的应用程序。它支持多种编程语言,包括Java,这使得开发人员能够在Java应用程序中直接使用Berkeley DB进行数据管理。在...

    Berkeley DB 5.3.21.tar

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

    BerkeleyDB-0.26

    **BerkeleyDB** 是一款由 Oracle 公司开发的开源、高性能、无模式的键值对存储数据库系统。它在嵌入式环境和轻量级应用程序中被广泛使用,尤其适用于那些需要快速数据访问和简单数据管理的应用。BerkeleyDB 的设计...

    SQL 开发人员 Oracle Berkeley DB 指南

    《SQL开发人员Oracle Berkeley DB指南》 Oracle Berkeley DB是一个开源的嵌入式数据库引擎,它提供了高效、可靠的本地持久性存储,无需独立的数据库管理系统。这个数据库引擎特别适合那些需要固定查询模式并且对...

    Berkeley DB Java 版 4.0.92

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

    Berkeley DB

    - 安装包:用于在目标系统上安装Berkeley DB的二进制文件和库。 - 头文件:包含API函数声明,供开发者在编写程序时引用。 - 示例代码:展示如何使用Berkeley DB API进行数据操作。 - 文档:详细介绍了Berkeley DB的...

    BerkerleyDb-18.1.40.tar.gz

    在本文中,我们将深入探讨BerkeleyDB的特性、安装过程以及如何在Scrapy-Deltafetch项目中使用它。 一、BerkeleyDB的特性与优势 1. **嵌入式设计**:BerkeleyDB不依赖于服务器进程,可以直接在应用程序中使用,减少...

Global site tag (gtag.js) - Google Analytics