东京内阁和京都内阁有什么区别?

时间:2010-11-14 16:28:21

标签: tokyo-cabinet kyotocabinet tokyo-tyrant

FAL Labs有多个东京产品和京都产品:

  • Tokyo Cabinet和Kyoto Cabinet都是轻量级数据库
  • Tokyo Tyrant和Kyoto Tycoon都是轻量级数据库服务器 ......

有人可以解释东京和京都产品之间的区别吗?

4 个答案:

答案 0 :(得分:13)

东京内阁更加完整和稳定,京都太新鲜了(今天是2010年12月8日)并且有一些问题。京都,用C ++编写,比东京(用C语言写)更简单,但这种简单性有一些差距。京都的表现比东京稍微差一点,但是对于线程来说效果更好(至少文档承诺如此)。

来自官方文件:

<< 2007年,东京内阁成为QDBM的继承者,其目的如下。它们已经实现,东京内阁可以取代传统的DBM产品。

(...)

2009年,京都内阁成为QDBM的另一个继承者。与兄弟产品(Tokyo Cabinet)相比,追求以下优点。然而,东京内阁的表现高于京都内阁,至少在单线程运营中。 >>

我使用了两者,但我仍然喜欢东京,因为我在京都遇到了问题:In Kyoto Cabinet Database using File Hash Database, how can avoid file size increasing?没有人能够帮助我。我仍然不知道如何解决这个问题。

根据我的个人经验,我发现京都更容易编译和安装,也更容易使用。我对东京库的依赖性和将本机库与Java接口链接起来的问题存在很大问题。在京都,一切都很好,第一次尝试也很好。但是,正如我之前所说,我觉得使用东京可以更好地控制数据库。

答案 1 :(得分:7)

东京内阁和暴君是LGPL并用C语写。京都内阁和大亨是GPLv3并用C ++编写。

Kyoto Tyrant支持内存中过期的记录,因此可以替换memcached。

开发商称京都*不是东京*的继承者,但它只是一种营销策略; 如果你不打算开发商业产品,请使用京都。它更新更好。

我建议您阅读开发人员的博客(包括日语和英语)并仔细阅读标题文件(如果您要使用该库)。

祝你好运。

答案 2 :(得分:2)

关于我的用例,两者之间最重要的区别是TC有一个“表数据库”,而KC没有。

是的,您可以将任意数据序列化为字符串并将其存储为项目值,但是您要么根本不能按值搜索,要么需要迭代整个数据集并反序列化每个项目,或者重新发明轮子并手动索引数据。

Tokyo Cabinet的TDB为嵌套数据提供了出色的查询功能(索引,数字和字符串比较,甚至是“字段”中的正则表达式)。京都的东西只是一家KV商店; TC也是一个功能强大的面向文档的数据库。

答案 3 :(得分:1)

另外,根据我所做的测试,京都议定书仅基于HTTP - 更开放, 但比东京的二元协议要慢。