23

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

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

有人能解释一下东京和京都产品之间的区别吗?

4

4 回答 4

14

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

来自官方文档:

<< 2007 年,东京内阁作为 QDBM 的继任者基于以下目的而发展起来。他们实现了,东京内阁可以取代传统的 DBM 产品。

(...)

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

我都用过,但我还是更喜欢东京,因为我在京都有一个问题:在使用文件哈希数据库的京都内阁数据库中,如何避免文件大小增加?没有人能帮助我。我仍然不知道如何解决这个问题。

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

于 2010-12-08T18:47:00.017 回答
7

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

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

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

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

祝你好运。

于 2010-11-15T12:30:55.220 回答
2

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

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

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

于 2011-11-18T18:58:41.827 回答
1

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

于 2012-05-07T16:12:32.607 回答