我真的很喜欢CouchDB . 这是一个学习曲线,但一旦你理解了如何使用它们,视图就会非常强大 . 有一个名为cradle on github和npm的模块非常容易使用 . 我没有't been able to test how fast it is, but it is really flexible (you can access your data in a browser too if you'喜欢) .
这里的主要问题是哪种数据库设计对您的应用程序有意义 . 您是否拥有主要是关键 Value 的数据?如果是这样,请使用Redis . 您是否拥有并非所有文档必须具有相同字段的数据?如果是这样,请使用像CouchDB这样的NoSQL数据库 .
11 回答
我是node.js的mongodb驱动程序的开发人员 . 我正在为自己的项目使用mongodb,并对mongodb的性能非常满意 .
Mongodb driver for node.js
(无耻插头)随意询问有关司机的任何问题
Google group for the mongodb driver
或者在Stackoverflow
享受node.js的乐趣 . 我非常喜欢这个平台:D
虽然您的选择在很大程度上取决于您的目标,但我非常欣赏CouchDB的原生JavaScript环境 . 数据和视图都是用JavaScript编写的,所以我认为它非常适合node.js .
还有不同的client libraries可用,有些是相当低级别,有些则非常抽象 .
但正如我所说,您还应该考虑数据库所需的功能 .
Redis是一个受欢迎的选择 . 你所追求的是一个不会阻塞的数据库驱动程序 .
您列出的数据库都非常不同 . Redis采用键值存储的概念并随之运行,添加了各种数据类型和查询数据的方法 . 人们经常注意到redis也很好地缩小了;意味着尽管具有执行能力,但它的开销非常低 .
以下是可用数据库模块的列表:http://wiki.github.com/ry/node/modules#database
我真的很喜欢CouchDB . 这是一个学习曲线,但一旦你理解了如何使用它们,视图就会非常强大 . 有一个名为cradle on github和npm的模块非常容易使用 . 我没有't been able to test how fast it is, but it is really flexible (you can access your data in a browser too if you'喜欢) .
这里的主要问题是哪种数据库设计对您的应用程序有意义 . 您是否拥有主要是关键 Value 的数据?如果是这样,请使用Redis . 您是否拥有并非所有文档必须具有相同字段的数据?如果是这样,请使用像CouchDB这样的NoSQL数据库 .
使用阻塞数据库的下一个更糟糕的事情是使用错误的数据库来存储数据 . CouchDB由Apache管理,因此您知道它的质量很好,但如果您的数据在SQL表或简单的键值存储中更有意义,那么使用它是没有意义的 .
想想你的用例 . 您是否更有可能想要进行全文搜索,只是按键获取数据,或者获取具有相似属性的文档范围?
可能想查看Persistence,node.js的高级持久性/数据库系统 .
来自thechangelog.com:
免责声明:我是作者 .
也许看看BarricaneDB宣布here .
我不确定正确的解决方案是仅关注将数据库映射到Web堆栈,而是考虑特定于应用程序的要求 .
您是在分析Twitter订阅源或其他大容量数据的模式,但不需要事务支持?然后选择一些非常快的东西
您是否只想在一些表中存储一些非常基本的信息,而且它目前还不是“专注于企业”的应用程序?然后选择一些很酷的东西学习 .
也许你要存储对客户来说非常重要的数据,强大,需要交易,并且有实时的数据复制到远程托管设施等 . 然后可能看看像postgresql . 它也不会镜像,但node.js驱动程序运行得很好,如果你不是害怕sql,它很容易得到你想要的东西 .
至于我自己的看法,我认为使用像node.js这样的新堆栈(与php / java中的传统框架相比)增加了足够的“新”复杂性,不应该一次添加额外的层 . 这是一篇很好的文章,讨论了:
http://nodeguide.com/convincing_the_boss.html
我将从我的经验中说:CouchDB具有明确的学习曲线,而MongoDB我发现它非常容易学习和设置 . 我从未使用过redis . 我建议MongoDB - 但这可能是无耻的狂热主义 - 我没有数字,嘿,只有易用性的说法 .
dirty是另一个平面文件键值存储 . 顾名思义,对于简单的案例来说,这是一个快速而肮脏但高效的解决方案 . 我不是作者:)
还需要考虑更多:
全球:http://globalsdb.org
GT.M(起点为https://github.com/robtweed/node-mwire)
M / DB(SimpleDB的开源克隆):https://github.com/robtweed/node-mdb并且您可以使用Node.js SimpleDB客户端来访问它:https://github.com/rjrodger/simpledb
我发现CouchDB非常容易掌握 . 互联网上有很多电子书可以教你如何使用CouchDB和Node.js .
我发现this book对于学习CouchDB非常有用 .
为了将CouchDB与Node.js一起使用,我使用NANO模块 .
CouchDB可以托管在Iriscouch或Cloudant上 .