Ruby有可嵌入的键值存储吗?

时间:2012-11-14 18:47:13

标签: ruby key-value

我需要快速可靠的Ruby键值存储。有没有类似的东西?

要求它完全在Ruby进程内运行,不需要任何外部进程 它可能在内存中显式磁盘刷新 它需要具有最小的按键值检索时间,写入时间可能不太好 存储的数据量不会太差,大约几十万个密钥,每个密钥的文本值约为1kb。

7 个答案:

答案 0 :(得分:5)

您还可以尝试Moneta,它允许您构建嵌入在ruby过程中的自己的键/值存储。

答案 1 :(得分:3)

事实证明,对我来说最好的选择是使用普通哈希与Marshal一起将其序列化为磁盘。
对于那些数量的对象来说,YAML肯定太慢了 感谢@ ian-armit加强了我对核心Ruby库的信任。

答案 2 :(得分:2)

像DBM一样? http://www.ruby-doc.org/stdlib-1.9.3/libdoc/dbm/rdoc/DBM.html

(spambot的填充物)

DBM类为Unix风格的dbm或数据库管理器库提供包装。

Dbm数据库没有表或列;它们是简单的键值数据存储,如Ruby Hash,但不驻留在RAM中。键和值必须是字符串。

答案 3 :(得分:1)

您可以尝试Oria:https://github.com/intridea/oria

Oria(oh-rye-uh)是一个基于内存,基于Ruby的零配置Key-Value Store。它旨在快速轻松地处理大量数据,而不会导致部署问题或服务器问题。它使用EventMachine为半持久存储提供网络接口,并将内存中数据异步写入YAML文件。

答案 4 :(得分:0)

结帐PStore。不确定它是否足够快。

答案 5 :(得分:0)

Daybreak是一个不错的新选择。数据存储在内存中的表中,因此可以使用Ruby细节(每个,过滤,映射,缩小等),并且看起来比pstore或dbm更快。

有关详细信息,请参阅this blog post

答案 6 :(得分:0)

LevelDB,这是ruby bindings