- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
KyotoCabinet库的使用手册
Kyoto Cabinet库的使用手册简介 Kyoto Cabinet是一个数据库管理的库,是Tokyo Cabinet的改进版本。数据库是一个简单的包含记录的数据文件,每个记录是一个键值对(Key/Value),Key和Value都是变长的字节序列。Key和 Value既可以是二进制的,也可以是文本字符串。数据库中的Key必须唯一。数据库既没有表的概念,也不存在数据类型。所有的记录被组织为Hash表或 B+树。特点在数据库中,可以储存Key-Value记录,也可以根据Key来获取和删除记录。还可以遍历访问所有的Key。这些方法类似于UNIX标准中的DBM库(及后来的NDBM和GDBM)。因为KC的高性能,可以作为DBM的替代品。 Hash数据库的每个操作的时间复杂度是 O(1),因此理论上,性能是常量,而与数据库的规模无关。在实践中,性能由内存或存储设备的速度决定。如果数据库的大小小于内存大小,性能表现为内存的速度,比STL中的std::map要快。当然数据库大小可以大于内存大小,最大上限是8EB(1024×1024×1024GB)。即使在这样的情况下,每个操作也只需要一两个存储设备的seek操作。 B+ Tree 数据库的每个操作的时间复杂度是 O(log N)。因此理论上,性能是数据库规模的对数。尽管B+ Tree数据库的随机访问性能要慢于Hash数据库,但B+ tree数据库支持对Key 顺序的连续访问,这可以实现对字符串的前向匹配查找和整数的范围查找。连续访问的性能远快于随机访问。 API是基于面向对象设计的,Hash数据库和B+ Tree数据库都有从同一个超类继承而来的同样的方法。除了他们,还有7种数据库也继承了同样的超类。Prototype Hash数据库采用标准容器std::unordered_map实现,Prototype Tree 数据库采用标准容器std::map 实现,Stash 数据库是采用Naive Hash Map的原始实现来节省内存,Cache Hash 数据库是采用 LRU删除算法的双向链接Hash Map 原始实现。Cache Tree 数据库是基于Cache Hash 数据库并提供B+ Tree的机制。Directory hash 数据库是采用文件系统的目录机制实现,每个记录存储为一个目录下的文件。Directory Tree 数据库基于Directory hash数据库并提供B+ Tree的机制。所有的数据库都有相关的事物(Transaction)和游标(Cursor)的实用方法。软件也包含了命令行接口的程序。 KC的运行速度非常快。例如,保存一百万记录到Hash数据库中只需要0.9秒,保存到B+ Tree数据库只需要1.1秒。而且数据库本身还非常小。例如,Hash数据库的每个记录头只有16字节,B+ Tree数据库是4字节。更进一步,KC的伸缩性非常大,数据库大小可以增长到8EB(9.22e18 Bytes)。 KC是C++语言编写的,并提供C++、C、Java、Python、Ruby、Perl 和Lua的API。KC可以用在所有符合 C++03标准并带TR1库扩展的平台。KC是GNU General Public License的自由软件。FOSS License例外也提供用来适应其它免费和开源的licenses。另一方面也提供商业license。如果你在专有软件中使用KC,那么你需要商业 license。编译KC(Kyoto Cabinet)是TC(Tokyo Cabinet)的C++升级实现,而且更新比较频繁。如果是纯Key-Value存储的话,KC是一个很好的选择。KT(Kyoto Tycoon)是KC的一个网络接口。Kyoto Cabinet的官方项目网址为:/kyotocabinet。当前最新版本为1.2.76(kyotocabinet-1.2.76.tar.gz),下载地址为:/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gzFor LinuxLinux下环境要求:Linux 2.6+、gcc 4.2+、GNU make和ZLIB1.2.3+。查看内核版本:uname-r2.6.18-194.el5查看GCC版本:gcc -vgcc版本 4.1.2(Red Hat 4.1.2-48)查看ZLIB版本:rpm -qa | grepzlibzlib-1.2.3-3查看make的版本:make -vGNU Make 3.81Linux下编译和安装KC非常简单,步骤如下:下载源代码包# wget/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gz解压缩源码包# tar zxvf
文档评论(0)