原文 http://www.jdon.com/39718
Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase comparison :: KKovacs
CouchDB
Written in: Erlang
关键点Main point: DB consistency一致性, ease of use易用
License: Apache
Protocol: HTTP/REST
Bi-directional (!) replication, 双向复制
continuous or ad-hoc,
with conflict detection,冲突检测
thus, master-master replication. (!)主主复制
MVCC - write operations do not block reads 写操作不会阻塞读操作
Previous versions of documents are available文本式
Crash-only (reliable) design 可靠性设计
Needs compacting from time to time
Views: embedded map/reduce 内部嵌入Hadoop之类map/reduce算法
Formatting views: lists & shows
Server-side document validation possible
Authentication possible
Real-time updates via _changes (!)实时更新
Attachment handling
thus, CouchApps (standalone js apps)
jQuery library included
适合: 累计 堆积计算, 偶尔改变数据, 预先定义的查询. 非常注重版本控制的场合.
举例:: CRM, CMS系统. 主-主复制是其特别亮点,可以易于多个站点部署。
Redis
Written in: C/C++
关键点Main point:超快Blazing fast
License: BSD
Protocol: Telnet-like
Disk-backed in-memory database, 磁盘后备,内存数据库。
but since 2.0, it can swap to disk.但是从2.0开始直接交换到磁盘。
Master-slave replication主-从复制
Simple keys and values,简单的key-value形式
but complex operations like ZREVRANGEBYSCORE但是复杂操作类似ZREVRANGEBYSCORE
INCR & co (good for rate limiting or statistics)
Has sets (also union/diff/inter)
Has lists (also a queue; blocking pop)
Has hashes (objects of multiple fields)
Of all these databases, only Redis does transactions (!)在这些数据库中,只有Redis有事务机制。
Values can be set to expire (as in a cache)如同缓存一样,值能被设置为超过一定时间过期失效。
Sorted sets (high score table, good for range queries)有排序的sets,善于range查询。
Pub/Sub and WATCH on data changes (!)采取Pub/Sub 和观察者WATCH事件触发数据变化。
适合: 在可以控制的数据库大小情况下(放得下整个内存),快速改变数据,快速写数据。
案例:股票价格系统 分析,实时数据收集,联系等等。
MongoDB
Written in: C++
关键点: 保留类似SQL风格. (Query, index)
License: AGPL (Drivers: Apache)
Protocol: Custom, binary (BSON)
Master/slave replication主从复制(分布式状态集群方式)
Queries are javascript expressions查询是javascript表达式
Run arbitrary javascript functions server-side
Better update-in-place than CouchDB比CouchDB更好地就地更新
Sharding built-in 内置分片碎片
Uses memory mapped files for data storage 使用内存对应文件方式实现数据存储
Performance over features
After crash, it needs to repair tables 当崩溃后,需要修复表。
适合: 需要动态查询. 愿意事先定义索引indexes, 不需要 map/reduce 功能. 你需要巨大的数据库有良好性能,你需要CouchDB但是你数据变化改变很频繁,需要频繁写。
案例:适合所有MySQL 或者 PostgreSQL场合,它也适合
Cassandra
Written in: Java
关键点: 大表模型BigTable 和 Dynamo中最好的
License: Apache
Protocol: Custom, binary (Thrift)
Tunable trade-offs for distribution and replication (N, R, W)
Querying by column, range of keys 按列查询
BigTable-like features: columns, column families 列
Writes are much faster than reads (!)写快于读
Map/reduce possible with Apache Hadoop
部分复杂性可能由于Java自身原因(如配置configuration, seeing exceptions, etc)
适合: 当写操作多于读操作 (如日子logging).
案例:: 银行Banking, 金融系统,写必须快于都的场合,实时的数据分析等.
Riak
Written in: Erlang & C, some Javascript
关键点: 容错性Fault tolerance 失败恢复 可靠性好
License: Apache
Protocol: HTTP/REST
Tunable trade-offs for distribution and replication (N, R, W)
Pre- and post-commit hooks,
for validation and security.
Built-in full-text search 内置全文本搜索
Map/reduce in javascript or Erlang Map/reduce支持
Comes in "open source" and "enterprise" editions 有两个版本
适合: 如果你希望有类似Cassandra-like (Dynamo-like)风格, 但是你不想处理器复杂性和膨胀性。单服务器有良好可伸缩性scalability, 可用性availability 和容错性 fault-tolerance, 采取是昂贵的多站点复制multi-site replication.
案例:销售点数据收集,工厂控制系统,那些不能允许几秒当机的场合。
HBase
Written in: Java
关键点: 十亿级别的行 X 百万级别的列 大容量
License: Apache
Protocol: HTTP/REST (also Thrift)
Modeled after BigTable大表模型
Map/reduce with Hadoop 内置Map/reduce
能够实时获得基于查询的优化
A high performance Thrift gateway 高性能的节约型网关
HTTP supports XML, Protobuf, and binary
Cascading, hive, and pig source and sink modules
Jruby-based (JIRB) shell
No single point of failure 无单点风险
Rolling RESTart for configuration changes and minor upgrades
Random access performance is like MySQL 随机访问的性能类似MySQL
适合: 如果你喜欢大表模型BigTable. :) 你需要随机 实时的读写操作
案例:: Facebook 消息数据库
分享到:
相关推荐
二.NoSQL数据库的产生 关系数据库面临挑战 关系数据库面对超大规模和高并发的SNS类型的web2.0纯动态网站显得力不从心,暴露了很多难以克服的问题 A 大数据发展 大规模数据集合,多重数据带来了许多挑战,尤其是...
1. NoSQL的含义:NoSQL(Not Only SQL)并不是指完全不使用SQL,而是指非关系型、非结构化的数据库系统,它支持大规模数据存储和高并发访问。 2. NoSQL的四大类型:键值存储、列族存储、文档数据库和图形数据库。...
《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 ...
分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。 3. Nosql数据库在分布式数据库中的应用 Nosql数据库在分布式数据库...
NoSQL数据库作为一种新兴的数据库技术,在解决大规模数据存储和处理方面展现出巨大的潜力。其高扩展性、高性能和灵活的数据模型使其成为许多现代应用程序的理想选择。然而,选择NoSQL数据库时也需要综合考虑各种因素...
NoSQL数据库技术是一种非关系型数据库,适用于大规模、高并发、高灵活性的数据存储和管理。它具有分布式、可扩展、灵活性和高并发等优势。NoSQL数据库技术可以分为四大类:键值存储、图形数据库、文档数据库和时间...
2. NoSQL数据库技术创新:NoSQL数据库技术创新是当前数据库技术发展的另一大趋势。NoSQL数据库技术创新包括NewSQL、NoSQL、专用数据库等。这些技术创新将推动数据库技术的发展,提高数据库的性能和灵活性。 3. ...
NoSQL数据库技术实战 数据库书籍!
- **大数据分析**:NoSQL数据库能够处理PB级别的数据量,非常适合大数据分析场景。 - **实时应用**:如社交网络、物联网等领域,NoSQL数据库能够提供低延迟的响应时间。 - **分布式系统**:NoSQL数据库天然支持...
nosql数据库的发展和应用研究
《大数据挑战与NoSQL数据库技术》共分为三部分。理论篇重点介绍大数据时代下数据处理的基本理论及相关处理技术,并引入NoSQL数据库;系统篇主要介绍了各种类型NoSQL数据库的基本知识;应用篇对国内外几家知名公司在...
NoSQL(Not Only SQL)数据库是一种非关系型数据库,它的设计目标是处理大规模数据,特别是在分布式计算环境中。与传统的SQL(结构化查询语言)数据库不同,NoSQL数据库不依赖于固定的表结构,支持多种数据模型,如...
- **高性能**:NoSQL数据库通常在读写速度上比关系型数据库更胜一筹,特别是在处理大数据量时。 - **容错性**:大多数NoSQL数据库采用分布式架构,具备良好的容错机制,能够在节点故障的情况下继续提供服务。 #### ...
NoSQL数据库的设计初衷是为了处理大规模数据集、高并发访问及提供灵活的数据模型支持。NoSQL这一概念的提出主要是为了应对传统关系型数据库在Web 2.0时代所遇到的一些挑战。 #### 二、NoSQL数据库的产生背景 随着...
在NoSQL与关系型数据库的比较中,NoSQL数据库在数据规模大、数据模式灵活、扩展性、一致性和可用性等方面具有显著优势。关系型数据库则在数据库原理、查询效率等方面有优势,但由于其需要定义数据库模式,这限制了其...
NoSQL 数据库技术是当前非常流行的一种数据库技术,它不同于传统的关系型数据库,NoSQL 数据库技术具有高可扩展性、高性能和灵活性等特点。下面是 NoSQL 数据库技术期末考试试卷附答案: 1. 创建一个集合 Student:...
NoSQL数据库总结 NoSQL数据库是一种非关系型的数据库,旨在解决传统关系数据库在...NoSQL数据库是解决传统关系数据库的缺陷的解决方案,提供了高性能、可扩展性和灵活性等特点,适合大规模数据存储和高并发应用场景。
大数据挑战与NoSQL数据库技术是当今信息技术领域中的热门话题,特别是在数据量呈指数级增长的背景下,传统的数据库管理系统已经无法满足高效存储和处理大规模数据的需求。NoSQL(Not Only SQL)数据库应运而生,成为...