首页 > 代码库 > linux下berkeley-db及python binding安装
linux下berkeley-db及python binding安装
1.下载源代码
shell > wget http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz
shell > wget http://pypi.python.org/packages/source/b/bsddb3/bsddb3-5.3.0.tar.gz#md5=d5aa4f293c4ea755e84383537f74be82
2, 解压缩,进入目录
3, 安装berkeley-db
shell > cd build_unix/
shell > ../dist/configure #默认安装在/usr/local/BerkeleyDB.5.3下
shell > make
shell > sudo make install
4 ,安装 python binding
shell > sudo python setup.py --lflags="/usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so" install
bsddb模块是用来操作bdb的模块,bdb是著名的Berkeley DB,它的性能非常好,mysql的存储后端引擎都支持bdb的方式。这里简单介绍一些关于bsddb的使用方法。
bdb不同于一般的关系数据库,它存储的数据只能是以key和value组成的一对数据,使用就像python的字典一样,它不能直接表示多个字段,当要存储多个字段的数据时,只能把数据作为一个整体存放到value中。
使用bsddb面临的第一问题是使用什么数据访问方法,bdb支持四种:btree, hash, queue, recno。这里先说说它们有什么区别,btree是用的树结构来才存储的数据,查询速度很快,可以存储任意复杂的key和value。hash是用的hash算法,速度其实和btree比差不多的,但是当数据量特别巨大时,应该使用hash。queue是队列操作,它有一个限制,它只能存储定长的数据,也就是说value的长度是固定的!但是queue可以保持数据的先进先出,并且对数据的插入做了特殊的优化,并且提供行级锁。queue的key必须是数字。recno和queue类似,但是它可以支持变长的value,它的key同样也是数字。
bdb不同于一般的关系数据库,它存储的数据只能是以key和value组成的一对数据,使用就像python的字典一样,它不能直接表示多个字段,当要存储多个字段的数据时,只能把数据作为一个整体存放到value中。
使用bsddb面临的第一问题是使用什么数据访问方法,bdb支持四种:btree, hash, queue, recno。这里先说说它们有什么区别,btree是用的树结构来才存储的数据,查询速度很快,可以存储任意复杂的key和value。hash是用的hash算法,速度其实和btree比差不多的,但是当数据量特别巨大时,应该使用hash。queue是队列操作,它有一个限制,它只能存储定长的数据,也就是说value的长度是固定的!但是queue可以保持数据的先进先出,并且对数据的插入做了特殊的优化,并且提供行级锁。queue的key必须是数字。recno和queue类似,但是它可以支持变长的value,它的key同样也是数字。
#-*- encoding: gb2312 -*- import os, sys, string import bsddb, time home = "db_home" filename = "test.db" try: # 创建home目录 os.mkdir(home) except: pass # 创建数据库环境 dbenv = bsddb.db.DBEnv() # 打开数据库环境 dbenv.open(home, bsddb.db.DB_CREATE | bsddb.db.DB_INIT_MPOOL) # 创建数据库对象 d = bsddb.db.DB(dbenv) # 打开数据库, 这里的第二个参数就是指定使用什么数据访问方法 # btree是 bsddb.db.DB_BTREE, hash是bsddb.db.DB_HASH # queu 是 bsddb.db.DB_QUEUE, recno 是bsddb.db.DB_RECNO d.open(filename, bsddb.db.DB_BTREE, bsddb.db.DB_CREATE, 0666) # 插入一条数据,注意queue和recno的key不能是字符串的,应该是数字 d.put('test1', 'zhaowei') print d.items() # 关闭,这时会把数据写回文件 d.close() dbenv.close()
https://www.jcea.es/programacion/pybsddb_doc/ 相关linux下关于python berkeley-db 文档地址!
linux下berkeley-db及python binding安装
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。