【发布时间】:2010-11-14 16:28:20
【问题描述】:
FAL Labs拥有多个东京产品和京都产品:
- 东京内阁和京都内阁都是轻量级数据库。
- Tokyo Tyrant 和 Kyoto Tycoon 都是 轻量级数据库服务器...
谁能解释一下东京和京都产品的区别?
【问题讨论】:
标签: tokyo-cabinet kyotocabinet tokyo-tyrant
FAL Labs拥有多个东京产品和京都产品:
谁能解释一下东京和京都产品的区别?
【问题讨论】:
标签: tokyo-cabinet kyotocabinet tokyo-tyrant
东京内阁更加完整和稳定,京都还太新鲜(今天是2010年12月8日)并且有一些问题。京都,用 C++ 编写,比东京(用 C 编写)简单得多,但这种简单性留下了一些差距。京都的性能比东京稍差,但在线程方面表现更好(至少文档承诺)。
来自官方文档:
(...)
2009 年,京都内阁发展成为 QDBM 的另一个继任者。与同级产品(东京内阁)相比,追求以下优势。但是,东京内阁的性能要高于京都内阁,至少在单线程操作方面。 >>
我都用过,但我还是更喜欢东京,因为我在京都遇到了问题:In Kyoto Cabinet Database using File Hash Database, how can avoid file size increasing? 没有人能帮助我。我还是不知道怎么解决。
根据我的个人经验,我发现京都更容易编译和安装,也更容易使用。我对 Tokyo 库的依赖以及将本机库与 Java 接口链接起来遇到了很大的问题。在京都,一切都很好,并且在第一次尝试时工作正常。但是,正如我之前所说,我觉得使用东京对数据库的控制权更大。
【讨论】:
Tokyo Cabinet 和 Tyrant 是 LGPL,用 C 编写。Kyoto Cabinet 和 Tycoon 是 GPLv3,用 C++ 编写。
京都暴君支持内存中的过期记录,所以可以替代memcached。
开发商说京都*不是东京*的继承者,而只是一种营销策略; 如果您不打算开发商业产品,请使用京都。它更新更好。
我建议你阅读开发者的博客(日文和英文)并仔细阅读头文件(如果你要使用该库)。
祝你好运。
【讨论】:
就我的用例而言,两者之间最重要的区别是 TC 有一个“表数据库”,而 KC 没有。
是的,您可以将任意数据序列化为字符串并将其存储为项目值,但是您要么根本无法按值搜索,要么需要遍历整个数据集并反序列化每个项目,或者重新发明轮子并手动索引数据。
Tokyo Cabinet 的 TDB 为嵌套数据(索引、数字和字符串比较,甚至“字段”中的正则表达式)提供了出色的查询功能。京都的东西只是一个 KV 商店; TC 也是一个强大的面向文档的数据库。
【讨论】:
另外,根据我所做的测试,京都协议仅基于 HTTP - 更开放, 但比 Tokyo 的二进制协议慢。
【讨论】: