随笔 - 8, 文章 - 1, 评论 - 14, 引用 - 0
数据加载中……

哈希数据库 -- Tokyo Cabinet

Tokyo Cabinet 是一个DBM的实现。这里的数据库由一系列key-value对的记录构成。key和value都可以是任意长度的字节序列,既可以是二进制也可以是字符串。这里没有数据类型和数据表的概念。 

当 做为Hash表数据库使用时,每个key必须是不同的,因此无法存储两个key相同的值。提供了以下访问方法:提供key,value参数来存储,按 key删除记录,按key来读取记录,另外,遍历key也被支持,虽然顺序是任意的不能被保证。这些方法跟Unix标准的DBM,例如GDBM,NDBM 等等是相同的,但是比它们的性能要好得多(因此可以替代它们) 

当按B+树来存储时,拥用相同key的记录也能被存储。像hash表一 样的读取,存储,删除函数也都有提供。记录按照用户提供的比较函数来存储。可以采用顺序或倒序的游标来读取每一条记录。依照这个原理,向前的字符串匹配搜 索和整数区间搜索也实现了。另外,B+树的事务也是可用的。 

As for database of fixed-length array, records are stored with unique natural numbers. It is impossible to store two or more records with a key overlaps. Moreover, the length of each record is limited by the specified length. Provided operations are the same as ones of hash database. 
对于定长的数组,记录按自然数来标记存储。不能存储key相同的两条或更多记录。另外,每条记录的长度受到限 制。读取方法和hash表的一样。 

Tokyo Cabinet是用C写的,同时提供c,perl,ruby,java的API。

posted on 2010-04-19 13:05 兵临城下 阅读(2506) 评论(6)  编辑 收藏 引用 所属分类: 开源项目分析

评论

# re: 哈希数据库 -- Tokyo Cabinet   回复  更多评论   

"写入100万条数据只需0.643秒,读取100万条数据只需0.773秒"
2010-04-19 15:01 | giscn

# re: 哈希数据库 -- Tokyo Cabinet   回复  更多评论   

"写入100万条数据只需0.643秒,读取100万条数据只需0.773秒" ----每条数据有多大,总数据量有多大?
2010-04-19 15:01 | giscn

# re: 哈希数据库 -- Tokyo Cabinet   回复  更多评论   

谢谢提醒,没有注意此处,根据官方的测试:以哈希方式100w条记录,写入需要0.402秒,读取需要0.334秒。

2010-04-20 10:36 | 兵临城下

# re: 哈希数据库 -- Tokyo Cabinet   回复  更多评论   

这玩意儿并没有它所说的那么好……
2010-04-20 12:46 | 阿福

# re: 哈希数据库 -- Tokyo Cabinet   回复  更多评论   

呵呵,很棒啊,欢迎回访啊
2011-07-16 18:55 | 网站seo优化

# re: 哈希数据库 -- Tokyo Cabinet   回复  更多评论   

@兵临城下
这个速度是存取一条记录的还是存取1百万条的?
多CPU场合加速比怎么样?
2011-08-19 19:47 | Chipset

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理