Nosql Redis,CouchDB还是Cassandra?

Nosql Redis,CouchDB还是Cassandra?,nosql,couchdb,cassandra,redis,Nosql,Couchdb,Cassandra,Redis,各种可用的NoSQL数据库的优缺点是什么 特别是,在将写负载分配到多个服务器上时,Redis似乎很弱。是这样吗?这是个大问题吗?一个服务必须增长多大才能成为一个重大问题?NoSQL数据库(以及SQL数据库)的优缺点在很大程度上取决于您的用例。对于非常大的项目,性能是王道;但是对于全新的项目,或者时间和金钱有限的项目,简单性和上市时间可能是最重要的。为了教会自己(拓宽视野,成为一名更好、更有价值的程序员),也许最重要的是简单、坚实的基本概念 你想做什么样的项目 我脑海中浮现出一些优点和缺点: R

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


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

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

你想做什么样的项目

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

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

看一看,他很好地总结了为什么你会使用一个而不是另一个。

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