BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Moneta:一个面向Tokyo Cabinet和Memcache等键/值存储方式的接口

| 作者 Mirko Stocker 关注 0 他的粉丝 ,译者 赵劼 关注 4 他的粉丝 发布于 2009年2月27日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

关系型数据库只是各种数据存储方式中的一种。根据实际情况不同,键/值存储方式可能是更合适的选择。如果数据主要通过一个主键进行访问,那么键/值存储方式可能比关系型数据库更适合此类场景。那么,什么是键/值存储?听上去和传统的散列非常接近——实际上,这本就是相同的东西。
 

键/值存储方式相比成熟而复杂的RDBMS要简单得多,这也是该方面出现大量实现并相互竞争的原因。这里我们体验了Tokyo Cabient,以及一个不同键/值存储方式的统一接口:Moneta。

Tokyo Cabinet是一个C语言编写的类库,实现了一个非常高效,并节省空间的键/值存储:

数据存储在一个简单的文件中,每条记录为一个键/值对。每个键和值是一系列字节,长度可变,它们都支持两种形式:二进制数据和字符串。这里没有数据表或数据类型等概念。记录通过散列表或定长的数组进行组织。

除了对Ruby的支持之外,也有面向Perl,Java和Lua的API。

Tokyo Tyrant还提供了用于并行和远程连接的服务器,使Tokyo Cabinet能够跨多台机器使用。您可以从Ilya Grigorik的介绍文章中了解到Tokyo Cabinet的更多示例和信息。

假设您已经决定要采用键/值存储方式,但是还没有确定要使用哪种具体实现,则不妨尝试一下Moneta。它和Rack之于Web服务器的作用类似,“希望能够为各种键/值存储方式提供统一的接口”。如Yehuda Katz所述,“那些希望利用键/值存储优势的类库(例如Rails和Merb的缓存支持)可以在后端使用Moneta”。
 

Moneta创造性地支持文件、memcache、内存、文件系统中的xattrs、DataMapper,以及之前提过的Tokyo Cabinet(通过rufus-tokyo进行支持,这是个“基于ruby-ffi的Tokyo Cabient和Tokyo Tyrant接口”)等多种存储方式。

您可以从Yehuda的blog中得到有关Moneta的更多信息,或访问其github repository

查看英文原文:Moneta: An Interface to Key-Value Stores like Tokyo Cabinet, Memcache

 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

正找着呢。。 by Chen Randy

老赵也关注这个的啊,我们最近项目正准备用这个呢。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

深度内容

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT