我目前正在尝试为我的项目选择不同的 NoSQL 数据库。该项目是用 clojure 和 javascript 编写的。我目前正在寻找三个候选存储。MongoDB、FleetDB 和 CouchDB 的相对优势和劣势是什么?Clojure 更好地支持哪一个?Linux下哪个支持更好?我是否错过了更好的产品(必须是免费和 OSS)?
6 回答
我们使用的是 Clojure + MongoDB,它们配合得非常好。主要是因为 MongoDB 提供的 JSON 数据模型,可以很容易地与 Clojure 内部结构进行转换。
MongoDB 与 CouchDB 的比较:http ://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB
如果有人看到这个问题正在寻找适用于 Clojure 1.3 的当前版本的 redis-clojure,那么你可以去:https ://github.com/tavisrudd/redis-clojure
我认为Neo4j的属性图数据模型非常适合 Clojure,请参阅此 wiki 页面以获取更多信息的链接。关于免费,Neo4j 是在AGPL3许可下发布的,这意味着它可以在使用兼容许可的开源项目中免费使用。商业支持公司Neo Technology可以提供商业许可。
MongoDB 有自己的BSON(二进制 JSON),在洗牌大量二进制数据时可以提供更高的性能。
由于它在内部使用 javascript,因此它可能对项目的 Javascript 部分有好处。clj-time 的日期不(不是?)与 MongoDB 的日期格式兼容,尽管 java.util.Date.s 是。
也考虑 Redis DB。
项目页面:http ://code.google.com/p/redis/
和它的 clojure 客户端库:http: //github.com/ragnard/redis-clojure/