我目前正在尝试挑选适合我的项目的不同NoSQL数据库。该项目是使用Clojure和JavaScript编写的。我目前正在查看三个存储候选项,MongoDB、FleetDB和CouchDB。它们各自的优势和劣势是什么?哪一个在Clojure下得到更好的支持?哪一个在Linux下得到更好的支持?我有没有错过更好的产品(必须是免费和OSS)?
我们使用的是Clojure + MongoDB,它们非常好地协同工作。这主要是因为MongoDB提供了JSON数据模型,可以轻松地转换为/从Clojure内部结构。
MongoDB和CouchDB的比较: http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB
还要考虑Redis数据库。
项目页面:http://code.google.com/p/redis/
以及它的Clojure客户端库:http://github.com/ragnard/redis-clojure/
MongoDB有自己的BSON(二进制JSON),在处理大量二进制数据时可能会提供更高的性能。
由于它在内部使用JavaScript,因此对于项目中的JavaScript部分可能很好。但是,clj-time的日期格式与MongoDB的日期格式不兼容(或许不兼容?),而java.util.Date则可以。