问题标签 [tokyo-cabinet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
955 浏览

primary-key - 如何在东京柜中建立一对多行?

我引用东京内阁文件...

对于哈希表的数据库,每个键在一个数据库中必须是唯一的,因此不可能存储两个或多个键重叠的记录。

还是 tokyocabinet 允许基于元组的键?

设置一对多存储的最佳方法是什么(例如爬虫 1 kw<->many docids )

~B

0 投票
1 回答
455 浏览

ruby - 使用ruby中的类方法跨对象共享数据库连接?

我正在编写一个 ruby​​ 脚本,用作 Postfix SMTP 访问策略委托。该脚本需要访问 Tokyo Tyrant 数据库。我正在使用 EventMachine 来处理网络连接。EventMachine 需要一个 EventMachine::Connection 类,该类在创建新连接时由 EventMachine 的处理循环实例化。因此,对于每个连接,都会实例化和销毁一个类。

我正在从 EventMachine::Connection 的 post_init 创建到 Tokyo Tyrant 的连接(即在连接建立后立即)并在连接终止后将其拆除。

我的问题是这是否是连接到数据库的正确方法?即每次我需要它时都建立连接并在我完成后将其拆除?在程序关闭期间连接到数据库一次(程序启动时)会不会更好?如果是这样,我应该如何编码?

我的代码是:

带着敬意,

拉吉

0 投票
5 回答
992 浏览

c++ - Tokyo Cabinet 和可变大小的 C++ 对象

我正在用 C++ 构建一个使用 Tokyo Cabinet(C 中的原始 API)的系统。问题是我想存储一个类,例如:

问题是向量和字符串的长度是可变的。当我将 void* (我的对象)传递给东京内阁以便它可以存储它时,我还必须以字节为单位传递对象的大小。但这不能轻而易举地做到。

确定对象字节数的最佳方法是什么?或者在 Tokyo Cabinet 中存储可变长度对象的最佳方法是什么。

我已经在考虑寻找序列化库。

谢谢

0 投票
1 回答
394 浏览

c++ - TokyoCabinet:hdb->close() 处的分段错误

在 TC 哈希数据库中插入大约 800 万条记录后,我遇到了分段错误。插入所有内容后,我关闭了数据库,但在这部分代码(tchdb.c)中发现了分段错误:

更具体地说,在注释行。

数据库是这样打开的:

数据库调整为:

.tch 文件大约 2GB(2147483647 字节)。有趣的是,只有当我插入大约 800 万条记录时才会发生这种情况。有 2 或 3 百万的数据库可以正常关闭。插入 800 万条记录大约需要 3 个小时,因为我从文本文件中读取数据。

有任何想法吗?

谢谢

0 投票
1 回答
316 浏览

message-queue - 有哪些技术可以在多服务设置中从 tokyo cabinet 推送更改?

假设我有 N > 1 个基于 TCP、面向连接(阅读:不是网站)的服务,在某些负载平衡/共享配置中处理来自最终用户的连接。

这些用户所做的事情会导致对集中式 Tokyo Tyrant 数据存储中的一个或多个密钥进行更新。

您有什么建议将这些更改送给感兴趣的用户,这些用户连接到在同一私有网络(相同的科罗拉多州)上运行的不同服务实例?

一些想法:

将数据存储成功更新后的更改从服务 N 广播到所有其他服务

存储每个感兴趣的用户登录的服务,并向这些服务发送消息,然后将消息转发给感兴趣的用户;我想这就是 IRC 服务器-服务器连接的工作方式(需要研究)。

运行消息代理(例如 RabbitMQ);让每个服务 X 代表感兴趣的用户订阅一个队列;成功“放置”后发布到它

另一个想法是假装是复制从属并连接到主控。

一般来说,我正在寻找一种方法来获取在 CouchDB 中找到的“更改通知”,但对于 Tokyo Tyrant。然而,这个想法更普遍。

如果您建议只使用带有持久队列的消息代理而不是像 Tokyo Tyrant 这样的数据存储,请解释我如何连接到此类以允许验证等。我对此并不熟悉。

0 投票
1 回答
279 浏览

macos - tokyo cabinet perl api libtokyocabinet.dylib,文件不是必需的架构

嘿嘿,

为东京内阁编译 perl api 让我发疯!我总是这个错误信息:

ld:警告:在 /usr/local/lib/libtokyocabinet.dylib 中,文件不是必需的体系结构

我试过用 64 位重建 tokyop 机柜

-arch x86_64

但没有任何改变..

我正在使用 mac os x 10.6(雪豹)我将不胜感激任何帮助。

0 投票
1 回答
606 浏览

python - 什么情况会导致东京内阁封锁

tc在 python 中使用带有模块的 Tokyo Cabinet。我以 TDB 格式存储我的数据。我希望该表仅在写入期间阻塞。不幸的是,我看到当文件以“编写器模式”打开时,其他进程无法从中读取。这是标准行为,包装问题,还是我做错了什么?或者在其他情况下操作被阻止?

0 投票
1 回答
858 浏览

ruby - SimpleDB 与东京内阁

有没有人比较 SimpleDB 和 Tokyo Cabinet 的性能和可扩展性?我目前正在针对 SimpleDB 编写我的项目并考虑对 TC 进行基准测试,如果有人已经完成并且可以告诉我是否值得测试我的特定存储和搜索操作,那就太好了。如果不是,我将进行一些直接比较并将结果记录在博客上。

项目在 Amazon EC2 小型实例(目前)上使用 Ubuntu 9.1 和 Ruby 1.8.7。

0 投票
2 回答
690 浏览

mongodb - NO-SQL 对小型企业应用程序是否可靠?

我正在为小型企业的文档管理系统选择非 SQL 引擎还是常规 SQL 引擎。

我有使用 firebird/sql server 的经验,并且发现了良好的可靠性跟踪(特别是使用 firebird)。

这个市场到处都是蹩脚的“服务器”(克隆制造的 PC,市长),廉价的硬盘,很少使用 RAID 或类似的东西,有些在正常断电的地方,有些没有 UPS,等等...(我将包括到外部服务器的异地自动备份,但不会更改内部设置)。(我知道有关此类正确设置的最终用户教育,但愚蠢的依赖于这一点,所以坚持 te 点)

从设计的角度来看,无模式数据库是适合我的系统的方法,但是,我担心是否有任何实际解决方案(MongoDb、Tokyo Cabinet 等)像 firebird 和 survice 崩溃、故障和滥用,所以数据损坏非常罕见。

该计划是将办公文件存储在那里并提供一个中央存储库。

0 投票
1 回答
1209 浏览

configuration - 东京内阁调音参数

我一直在尝试为我的应用程序找到更好的东京内阁(或东京暴君)配置,但我不知道具体如何。我知道一些参数的含义,但我想有一个微调控制,所以我需要知道每个参数的影响。东京的文档非常好,但目前还不是。

  • TCHDB -> *bool tchdbtune(TCHDB *hdb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*

我如何使用bnumapowfpow

  • TCBDB -> *bool tcbdbtune(TCBDB *bdb, int32_t lmemb, int32_t nmemb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*

如何使用:lmemb、、、和?nmembbnumapowfpow

  • TCFDB -> *bool tcfdbtune(TCFDB *fdb, int32_t width, int64_t limsiz);*

我如何使用:widthlimsiz?注意:我只是把这个放在主题中获取所有类型的数据库,这个真的很简单。

  • TCTDB -> *bool tctdbtune(TCTDB *tdb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*

我如何使用bnumapowfpow