这些天似乎有无数的 NoSQL 数据库可用:
- 沙发数据库
- MongoDB
- 卡桑德拉
- Hadoop
这些工具和 Redis 等可作为 memcached 替代品的工具之间也存在界限。
没有挥手和抛出太多流行语 - 我的问题如下:
一个人如何明智地决定哪种工具对他们的项目最有意义?项目是否与主观答案足够相似,例如:Ruby 比 Python 好或 Python 比 Ruby 好?还是我们在这里谈论苹果和橙子,因为它们各自解决不同的问题?
教育自己了解这一新趋势的最佳方式是什么?
这些天似乎有无数的 NoSQL 数据库可用:
这些工具和 Redis 等可作为 memcached 替代品的工具之间也存在界限。
没有挥手和抛出太多流行语 - 我的问题如下:
一个人如何明智地决定哪种工具对他们的项目最有意义?项目是否与主观答案足够相似,例如:Ruby 比 Python 好或 Python 比 Ruby 好?还是我们在这里谈论苹果和橙子,因为它们各自解决不同的问题?
教育自己了解这一新趋势的最佳方式是什么?
也许一种思考方式是,编程最近已经从对所有事情使用一种通用语言发展到对大多数事情使用通用语言,再加上针对更合适部分的领域特定语言。例如,您可以使用 Lua 编写游戏中角色的人工智能脚本。
NoSQL 数据库可能类似。SQL 是采用时间最长和最广泛的通用数据库。虽然它可能无法满足许多任务,但程序员开始在更合适的时候将 NoSQL 用作特定领域的数据库。
我会争辩说,您提到的 4 个主要参与者确实具有完全不同的功能集,并尝试以不同的优先级解决不同的问题。
例如,据我所知,Cassandra(我假设是 Hadoop)的中心重点是大规模安装。
MongoDb 在提供相当强大的查询功能方面试图成为经典 SQL 服务器的更好扩展替代方案。
CouchDB 的重点是相对较小的规模(根本不会分片,“仅”复制)、高持久性和易于同步数据。
您可能想查看http://nosql-database.org/了解更多信息。
我面临的问题与您几乎相同,我想说没有真正的替代方案可以详细查看所有解决方案。
查看此站点: http ://cattell.net/datastores/ ,尤其是底部链接的 PDF(CACM 论文)。后者包含对各种数据存储解决方案的相对优点的精彩讨论。
It's easy. NoSQL databases are ACID compliant databases minus some guarantees. So just decide which guarantees you can do without and find the database that fits. If you don't need durability for example, maybe redis is best. Or if you don't need multi-record transactions, then perhaps look into mongodb.