【问题标题】:Redis, CouchDB or Cassandra? [closed]Redis、CouchDB 还是 Cassandra? [关闭]
【发布时间】:2011-06-10 20:49:59
【问题描述】:

各种可用的 NoSQL 数据库的优缺点是什么?

特别是,在将写入负载分布到多个服务器上时,Redis 似乎很弱。是这样吗?这是一个大问题吗?一项服务必须发展到多大才能成为一个重大问题?

【问题讨论】:

    标签: nosql couchdb cassandra redis


    【解决方案1】:

    NoSQL 数据库(以及 SQL 数据库)的优势和劣势高度取决于您的用例。对于非常大的项目,性能为王;但对于全新的项目或时间和金钱有限的项目,简单性和上市时间可能是最重要的。对于自学(拓宽视野,成为更好、更有价值的程序员),也许最重要的是简单、扎实的基本概念。

    你有什么样的计划?

    一些优点和缺点,我的脑海中浮现:

    • Redis
      • 非常简单的键值对“全局变量服务器”
      • 非常简单(有人会说“不存在”)的查询系统
      • 无疑是此列表中最快的
      • 交易
      • 数据集必须适合内存
      • 不成熟的集群,前途未卜(我相信它会很棒,但还没有决定。)
    • 卡桑德拉
      • 可以说是类 BigTable 数据库中最具社区性的动力
      • 可能是这个列表中最容易在大型/不断增长的集群中管理的
      • 支持 map/reduce,适用于分析、数据仓库
      • 多数据中心复制
      • 可调一致性/可用性
      • 无单点故障
      • 您必须知道您将在项目早期运行哪些查询,以准备数据形状和索引
    • 沙发数据库
      • 提供最好的同步(复制)支持,支持主/从、主/主以及更多奇特的架构
      • HTTP 协议,浏览器/应用程序可以部分或全部直接与数据库交互。 (同步也通过 HTTP 完成)
      • 经过简短的学习曲线,使用 Javascript 和 map/reduce 的非常复杂的查询系统
      • 集群操作(无 SPOF,可调一致性/可用性)目前是一个重要的分支 (BigCouch)。它可能会合并到 Couch,但没有路线图。
      • 同样,集群和多数据中心在理论上是可行的(我提到的“异国情调”的东西),但此时您必须自己编写所有这些工具。
      • 仅附加文件格式(数据库和索引)消耗磁盘的速度出奇地快,您必须手动运行压缩(清理),它会生成数据库中所有记录的完整副本。每个索引文件都需要相同的内容。同样,您必须成为自己的工具匠。

    【讨论】:

    • +1 “简单性和上市时间可能是最重要的”。先优化业务,再优化技术。 Redis 的一个缺点是它实际上只适用于适合内存的数据集。它的集群能力和基于磁盘的解决方案是有限的。 Cassandra 的其他优点是多数据中心复制、每个操作的可调一致性/可用性,以及无单点故障(集群中的每个节点都扮演相同的角色,没有主节点)。 Cassandra 的一个缺点是您必须在组织数据之前考虑您的查询,这可能需要一些努力。
    • 顺便说一下,根据我的经验,“时间和金钱有限的项目”涵盖了绝大多数项目中的绝大多数他们的寿命。
    • BigCouch 是一款出色的软件。它由 CouchDB 开发团队的核心成员带头。它将得到维护和进一步发展。虽然我不知道路线图,但我希望 BigCouch 会以某种方式合并回 CouchDB。如果您认为我是一个无可救药的粉丝,请考虑一下 BigCouch 是由我公司的竞争对手制造的!
    • 警告:严重过时的答案。
    【解决方案2】:

    看看http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis他很好地总结了为什么你会使用一个而不是另一个。

    【讨论】:

    • 这也是一个很好的总结。要是我能接受两个答案就好了!
    猜你喜欢
    • 2011-04-02
    • 1970-01-01
    • 2012-04-15
    • 2011-05-10
    • 2016-01-12
    • 2016-02-20
    • 2016-05-24
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多