浏览 3164 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-10
Berkeley DB 是一个高性能的数据库系统,它在20世纪90年代初开始开发,他不是SQL数据库引擎驱动,而是用于存储键/值对数据 。BDB非常快,可在大多数的操作系统上使用, 并且是双许可开源和允许商业用途.对于初次使用者来说,它有几个优点:仅使用一个单位文件,PStore(受保护存储): 事务, 细纹锁, 可复制和支持热备份。 虽然已经存在关于BDB的Ruby Bindings,但是Matt Bauer发布的Ruby Bindings加入了一些新的特性且能够快速容易的使用。当然,刚开始之前,你需要在你的操作系统中安装 Berkeley DB Library. OS X,MacPort中Berkeley BD 4.6 被称为db46,Ubuntu中为libdb-dev。另外,可以到Berkeley DB 的官方网站下载源代码,还有Matt的关于安装和使用Ruby Bindings 的说明文件. 使用范例: env = Bdb::Env.new(0)
env_flags = Bdb::DB_CREATE | # Create the environment if it does not already exist.
Bdb::DB_INIT_TXN | # Initialize transactions
Bdb::DB_INIT_LOCK | # Initialize locking.
Bdb::DB_INIT_LOG | # Initialize logging
Bdb::DB_INIT_MPOOL # Initialize the in-memory cache.
env.open(File.join(File.dirname(__FILE__), 'tmp'), env_flags, 0);
db = env.db
db.open(nil, 'db1.db', nil, Bdb::Db::BTREE, Bdb::DB_CREATE | Bdb::DB_AUTO_COMMIT, 0)
txn = env.txn_begin(nil, 0)
db.put(txn, 'key', 'value', 0)
txn.commit(0)
p db.get(nil, 'key', nil, 0)
db.close(0)
env.close
好了,这不是最容易阅读的代码,但是Berkeley BD的功能远远大于它复杂的API。如果你对Berkeley DB 及其方式仍然感到新鲜,请查阅指南(略有些旧但不过时)来加快理解。 英文原文:http://www.rubyinside.com/bdb-improved-ruby-bindings-for-berkeley-db-1438.html 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |