【问题标题】:What is the difference between Tokyo Cabinet and Kyoto Cabinet?东京内阁和京都内阁有什么区别?
【发布时间】:2010-11-14 16:28:20
【问题描述】:

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

  • 东京内阁和京都内阁都是轻量级数据库。
  • Tokyo Tyrant 和 Kyoto Tycoon 都是 轻量级数据库服务器...

谁能解释一下东京和京都产品的区别?

【问题讨论】:

    标签: tokyo-cabinet kyotocabinet tokyo-tyrant


    【解决方案1】:

    东京内阁更加完整和稳定,京都还太新鲜(今天是2010年12月8日)并且有一些问题。京都,用 C++ 编写,比东京(用 C 编写)简单得多,但这种简单性留下了一些差距。京都的性能比东京稍差,但在线程方面表现更好(至少文档承诺)。

    来自官方文档:

    (...)

    2009 年,京都内阁发展成为 QDBM 的另一个继任者。与同级产品(东京内阁)相比,追求以下优势。但是,东京内阁的性能要高于京都内阁,至少在单线程操作方面。 >>

    我都用过,但我还是更喜欢东京,因为我在京都遇到了问题:In Kyoto Cabinet Database using File Hash Database, how can avoid file size increasing? 没有人能帮助我。我还是不知道怎么解决。

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

    【讨论】:

    • 你好。您还面临哪些京都问题?
    • 你能告诉我,东京内阁是否支持内存 B+ 树实现以及如何实现?因为在我发现的一些网络文章中,它支持但找不到任何说明如何做到这一点的文档。抱歉,问了这样的问题,但找不到任何有经验的东京用户帮助解决这个问题。
    • 现在呢?仍然觉得东京比京都更成熟?
    • 我不知道。我停止使用它。如果有人给我们他们的经验,那就太好了。
    【解决方案2】:

    Tokyo Cabinet 和 Tyrant 是 LGPL,用 C 编写。Kyoto Cabinet 和 Tycoon 是 GPLv3,用 C++ 编写。

    京都暴君支持内存中的过期记录,所以可以替代memcached。

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

    我建议你阅读开发者的博客(日文和英文)并仔细阅读头文件(如果你要使用该库)。

    祝你好运。

    【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      另外,根据我所做的测试,京都协议仅基于 HTTP - 更开放, 但比 Tokyo 的二进制协议慢。

      【讨论】:

      • 京都大亨基于 HTTP:不是京都。
      • 当然。 “京都”没有任何意义。产品名为 Kyoto Cabinet (lib) 和 Kyoto Tycoon (server)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 2010-10-10
      相关资源
      最近更新 更多