现在似乎有无数的NoSQL数据库可用:
这些工具和工具(如Redis)之间也存在边界,可用作memcached替代品。
没有挥手并投掷太多流行语 - 我的问题如下:
如何智能地决定哪个工具对他们的项目最有意义?这些项目是否足够类似于对此的回答是主观的,例如:Ruby比Python好,或者Python比Ruby更好?或者我们在这里谈论苹果和橘子,因为他们每个人都解决了不同的问题?
了解这一新趋势的最佳方法是什么?
答案 0 :(得分:3)
也许有一种方法可以想到,编程最近已经从使用一种通用语言转变为使用通用语言进行大多数事情,再加上特定于域的语言来实现更合适的部分。例如,您可以使用Lua来编写游戏中角色的人工智能。
NoSQL数据库可能类似。 SQL是通用数据库,具有最长和最广泛的采用。虽然它可以用来担任许多任务,但程序员在更合适时会开始使用NoSQL作为特定于域的数据库。
答案 1 :(得分:2)
我认为,你命名的4个主要玩家都有不同的功能集,并尝试以不同的优先级解决不同的问题。
例如,据我所知,Cassandra(我假设Hadoop)主要关注大规模安装。
MongoDb尝试成为经典SQL服务器的更好的扩展替代品,提供相对强大的查询功能。
CouchDB的重点是相对较小的规模(根本不会分页,“仅”复制),高耐久性和轻松的数据同步。
您可能需要查看http://nosql-database.org/以获取更多信息。
我面临与你几乎相同的问题,我会说没有真正的替代方案来详细查看所有解决方案。
答案 2 :(得分:1)
查看此网站:http://cattell.net/datastores/,特别是底部链接的PDF(CACM文件)。后者对各种数据存储解决方案的相对优点进行了很好的讨论。
答案 3 :(得分:0)
这很容易。 NoSQL数据库是符合ACID标准的数据库,减去了一些保证。因此,只需确定您可以做的保证,找到适合的数据库。例如,如果你不需要耐久性,也许redis是最好的。或者,如果您不需要多记录交易,那么也许可以查看mongodb。