CouchDB
开发语言:: Erlang
主要优点: 数据一致性,易用
许可: Apache
Protocol: HTTP/REST
适用: 积累性的、较少改变的数据。或者是需要版本比较多的
举例: CRM, CMS systems. 允许多站部署.
Redis
开发语言:: C/C++
主要优点: 一个字 快
许可: BSD
Protocol: Telnet-like
适用: 总数据集快速变化且总量可预测.内存需求较高
举例: 股票价格、实时分析、实时数据收集、实时通信.
MongoDB
开发语言:: C++
主要优点: 类似SQL. (查询, 索引)
许可: AGPL (Drivers: Apache)
Protocol: Custom, binary (BSON)
适用: 动态查询; 索引比map/reduce方式更合适时; 跟CouchDB一样,但数据变动更多.
举例: 任何用Mysql/PostgreSQL的场合,但是无法使用预先定义好所有列的时候
Cassandra
开发语言:: Java
主要优点: 最好的BigTable和Dynamo
许可: Apache
Protocol: Custom, binary (Thrift)
适用: 写入比查询多,只支持Java
举例: 银行,金融行业.
Riak
开发语言:: Erlang & C, some Javascript
主要优点: 容错性高
许可: Apache
Protocol: HTTP/REST
适用: 类似 Cassandra,但比较简单. 如果你需要非常好的可扩展性,可用性和容错性,但你要多站点部署必须付费。
举例: 销售数据的收集。 工厂控制系统。 几秒钟的停机就会有伤害的地方。.
HBase
开发语言:: Java
主要优点: 支持数十亿的列
许可: Apache
适用: 类似 BigTable.gae上就是BigTable
举例: Facebook
|
-
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
- 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
Best used: For accumulating, occasionally changing data, on which pre-defined queries are to be run. Places where versioning is important.
For example: CRM, CMS systems. Master-master replication is an especially interesting feature, allowing easy multi-site deployments.
|
|
-
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.
- Master-slave replication
- Simple keys and values,
- but complex operations like 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 (!)
- Values can be set to expire (as in a cache)
- Sorted sets (high score table, good for range queries)
- Pub/Sub and WATCH on data changes (!)
Best used: For rapidly changing data with a foreseeable database size (should fit mostly in memory).
For example: Stock prices. Analytics. Real-time data collection. Real-time communication.
|
|
-
Written in: C++
-
Main point: Retains some friendly properties of SQL. (Query, index)
-
License: AGPL (Drivers: Apache)
-
Protocol: Custom, binary (BSON)
- Master/slave replication
- Queries are javascript expressions
- Run arbitrary javascript functions server-side
- Better update-in-place than CouchDB
- Sharding built-in
- Uses memory mapped files for data storage
- Performance over features
- After crash, it needs to repair tables
- Better durablity coming in V1.8
Best used: If you need dynamic queries. If you prefer to define indexes, not map/reduce functions. If you need good performance on a big DB. If you wanted CouchDB, but your data changes too much, filling up disks.
For example: For all things that you would do with MySQL or PostgreSQL, but having predefined columns really holds you back.
|
|
-
Written in: Java
-
Main point: Best of BigTable and 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
- I admit being a bit biased against it, because of the bloat and complexity it has partly because of Java (configuration, seeing exceptions, etc)
Best used: When you write more than you read (logging). If every component of the system must be in Java. (“No one gets fired for choosing Apache’s stuff.”)
For example: Banking, financial industry (though not necessarily for financial transactions, but these industries are much bigger than that.) Writes are faster than reads, so one natural niche is real time data analysis.
|
|
-
Written in: Erlang & C, some Javascript
-
Main point: 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
- Comes in “open source” and “enterprise” editions
Best used: If you want something Cassandra-like (Dynamo-like), but no way you’re gonna deal with the bloat and complexity. If you need very good single-site scalability, availability and fault-tolerance, but you’re ready to pay for multi-site
replication.
For example: Point-of-sales data collection. Factory control systems. Places where even seconds of downtime hurt.
|
HBase
|
-
Written in: Java
-
Main point: Billions of rows X millions of columns
-
License: Apache
-
Protocol: HTTP/REST (also Thrift)
- Modeled after BigTable
- Map/reduce with Hadoop
- Query predicate push down via server side scan and get filters
- Optimizations for real time queries
- 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
Best used: If you’re in love with BigTable. And when you need random, realtime read/write access to your Big Data.
For example: Facebook Messaging Database (more general example coming soon)
|
分享到:
相关推荐
MongoDB等NoSQL数据库背后蕴涵的哲学是不同的平台应该使用不同类型的数据库,MongoDB通过降低一些特性来达到性能的提高,这在很多大型站点中是可行的。因为MongoDB是非原子性的,所以如果如果应用需要事务,还是需要...
主流NoSQL数据库全方位评测之Redis
非关系数据库(经常被称为NoSQL)的特点是弹性和可伸缩性。另外,它们可以存储大数据并与云计算系统协同工作。这些因素导致非关系数据库非常流行。在2013年,NoSQL数据库的种类达到了150多个,并且一直在增长,多种...
NoSQL主流数据库-MongoDB.pptx
教程名称:NoSQL数据库之MongoDB视频讲解(17集附源码)课程目录:【】MongoDB - 1【视频讲解】【】NoSQL数据库之MongoDB - 11【】NoSQL数据库之MongoDB - 16【】NoSQL数据库之MongoDB - 5【】NoSQL数据库之MongoDB-...
《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 ...
便于学习nosql,hbase的PPT,学习好材料。
详细地介绍NoSQL数据库,NoSQL数据库的特点,适用场景,与关系型数据库的对比,Redis数据库的介绍,Redis与MongoDB数据库、MySQL数据库的比较,Redis数据库在Linux系统下的安装与部署。
高级分布式数据库教程,nosql,mongodb,redis。非常好的分布式教程!
NoSql数据库之Redis笔记
NoSQL数据库之MongoDB源码和PPT,包含9个文件夹,内有源代码与PPT。
针对这种情况,这里对 Cassandra、 Mongodb、CouchDB、Redis、 Riak、 Membase、Neo4j和HBase进行了比较: (编注1:NoSQL:是一项全新的数据库革命性运动,NoSQL的拥护者们提倡运用非关系型的数据存储。现今的...
解决方案提供了从NoSQL数据库(MongoDb,CouchDb)检索和分析日志数据的机会。 包括功能: 查询和搜索数据 多维对象渲染; 错误和信息的分析图; 实时数据观察和更新; 去做 资料模型 JSON范例 { "Message" : ...
A.4实验四:NoSQL和关系数据库的操作比较 本实验对应第6章的内容。 A.4.1实验目的 (1)理解4种数据库(MySQL、HBase,Redis和 MongoDB)的概念及不同点。(2)熟练使用4种数据库操作常用的 Shell命令。 (3)熟悉4种...
文档中主要介绍了nosql的相关技术,介绍了它的一些概念以及组成情况,然后介绍了Neo4j技术、Mongodb技术,redis技术的一些具体概念和使用场景,最后展望了一下NoSQL数据库的未来,希望对大家有所启发。
NoSQL数据库 14信管一班2组23殷月园 NoSQL数据库PPT全文共20页,当前为第1页。 内容大纲 定义 产生 共同特征 分类 适用场景 发展现状 7 挑战 NoSQL数据库PPT全文共20页,当前为第2页。 一.什么是NoSQL数据库? NoSQL...