5

主要要求:

  1. 集群和复制支持,因此在云中部署简单且成本低。
  2. 直接支持对象。从等式中取出 ORM。
  3. Python 客户端。
  4. 阅读重度和中度写入。
  5. 需要适中的速度,但不像股票交易。
4

1 回答 1

4

基于这篇文章

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

我最终将我的数据库选择深入到RedisMongoDB,因为它们似乎满足了大多数要求。我将解释我是如何选择最适合我的要求的。

  1. 集群和复制支持——Redis 几乎不支持集群或复制。因此,您的内存与您的数据成比例增长。由于我们使用的是基于云的基础架构 - 支持这种内存的成本可能很高。另一方面,MongoDB 支持复制和集群。Redis 0 MongoDB 1。
  2. 直接支持对象 - 无 ORM:显然 Redis 是赢家,因为它支持类似 memcached 的模型。但是,MongoDB 还提供了“对象类存储”和对 JSON 的直接支持。因此,如果我可以牺牲速度要求,MongoDB 确实可以满足这一需求。Redis 1 MongoDB 1。
  3. Python 客户端 - 两个数据库都有强大的 Python 客户端。Redis 1 MongoDb 1。
  4. 读取重度和中度写入 - 我认为这两个数据库的读取性能没有明显差异。但是,只有经验会说。暂时——我给两者的分数是一样的。Redis 1 MongoDB 1。
  5. 不需要像速度这样的股票交易——显然 MongoDB 在这方面有优势。Redis 0 MongoDB 1。

总分:Redis 3 MongoDB 5。

现在我将使用 MongoDB。作为额外的奖励,MongoDB 还具有地理空间查询支持。因此,如果出于某种原因我必须向我的应用程序添加基于位置的查询,那么使用 MongoDB 进行这种转换应该不难。让我们看看情况如何。我希望有一天能回来并重新审视这个答案:)。请随时添加我错过的任何内容。

于 2012-10-10T05:29:04.670 回答