正确的持久性技术

时间:2013-01-06 14:22:49

标签: node.js mongodb redis key-value-store nosql

我们有一个在nodejs中运行的应用服务器,我们正在尝试替换当前的持久性技术(MySQL)。我们正在考虑几个nosql选项,如CouchDB,MongoDB,Redis,Riak等。 数据的大小不会很大(最大1 Gb),单个服务器解决方案也没问题。

我们正在开发自己的转换/查询语言,为了使其高效工作,我们的持久性技术最重要的要求是在数据结构上导航非常快;检索记录/文档/节点,查找它链接到的记录,然后检索其中的一些。这是在1次转换中递归完成的,典型的转换将以递归方式检索大约100.00条记录。

我看到3个可能的解决方案

1)使用NoSQL产品作为简单的键值存储,不要使用任何高级功能,如聚合,过滤等(可能除了索引),并为每个记录1发送请求。

2)使用进程中的键值存储(Alfred?)(我认为这样效率更高,但这只是直觉,还没有实际测量)。

3)我们的转换引擎是用javascript编写的,转换本身被定义为一个复杂的JSON结构,因此我们可以将转换引擎存储为支持Javascript(如MongoDB)的nosql产品中的视图,并且每次都需要要进行转换,我们发送JSON结构并让nosql服务器进行转换。

您可以考虑建立这个的最佳方向/产品是什么?

GR,

科恩

1 个答案:

答案 0 :(得分:1)

Couchbase不在您的列表中,但可以满足您的要求,键/值JSON数据存储,极其快速和可扩展的性能。像memcached(RAM速度性能)但具有持久性后端的行为。它实际上是从memcached进化而来的 - > membase server(使用持久性分布式memcached) - > Couchbase(许多新功能,包括索引和搜索)。可以扩展到数百万操作/秒。开源与许多大客户(即Orbitz,Zynga,LinkedIn)和企业支持。

http://www.couchbase.com/