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 REST art for
configuration changes and minor upgrades
Random access performance is like
MySQL 随机访问的性能类似MySQL
适合: 如果你喜欢大表模型BigTable. :) 你需要随机 实时的读写操作
案例::
Facebook 消息数据库
分享到:
相关推荐
官方给出的三种NoSQL数据库:SequoiaDB&Cassandra&MongoDB性能对比测试报告;值得参考;
数据库管理 技术关键词: MongoDB 内容关键词: NoSQL文档数据库 用途: 用于存储和检索大量的分布式数据 ...MongoDB是一个NoSQL数据库,使用文档来存储数据,非常适合处理大量的数据,以及在水平扩展方面具有优势。
主流NoSQL数据库全方位评测:MongoDB
MongoDB等NoSQL数据库背后蕴涵的哲学是不同的平台应该使用不同类型的数据库,MongoDB通过降低一些特性来达到性能的提高,这在很多大型站点中是可行的。因为MongoDB是非原子性的,所以如果如果应用需要事务,还是需要...
便于学习nosql,hbase的PPT,学习好材料。
《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 ...
非关系数据库(经常被称为NoSQL)的特点是弹性和可伸缩性。另外,它们可以存储大数据并与云计算系统协同工作。这些因素导致非关系数据库非常流行。在2013年,NoSQL数据库的种类达到了150多个,并且一直在增长,多种...
NoSQL: 即Not Only SQL 与关系型数据库相对应的,也可理解为 no relational ,即非关系型数据库 。 NoSQL数据库PPT全文共20页,当前为第3页。 二.NoSQL数据库的产生 关系数据库面临挑战 关系数据库面对超大规模和...
nosql精通教学PPT资源包 Mongodb资料 Redis资料 HBase资料nosql精通教学PPT资源包 Mongodb资料 Redis资料 HBase资料nosql精通教学PPT资源包 Mongodb资料 Redis资料 HBase资料nosql精通教学PPT资源包 Mongodb资料 ...
《Oracle NoSQL数据库:实时大数据管理》讲述如何全面运用Oracle NoSQL数据库这个经济实惠的解决方案来存储、检索和更新海量的非结构化数据。本书在紧贴实用的示例的引导下,介绍Oracle NoSQL数据库的安装、配置、...
针对这种情况,这里对 Cassandra、 Mongodb、CouchDB、Redis、 Riak、 Membase、Neo4j和HBase进行了比较: (编注1:NoSQL:是一项全新的数据库革命性运动,NoSQL的拥护者们提倡运用非关系型的数据存储。现今的...
教程名称:NoSQL数据库之MongoDB视频讲解(17集附源码)课程目录:【】MongoDB - 1【视频讲解】【】NoSQL数据库之MongoDB - 11【】NoSQL数据库之MongoDB - 16【】NoSQL数据库之MongoDB - 5【】NoSQL数据库之MongoDB-...
NOSQL数据库入门到实战: 结合实践案例,以任务为驱动,对Mongodb、Redis数据库技术进行梳理,让开发者快速掌握Mongodb和Redis数据库。Mongodb主要由文档(Document)、集合(Collection)、数据库(Database)三部分...
(1)理解4种数据库(MySQL、HBase,Redis和 MongoDB)的概念及不同点。(2)熟练使用4种数据库操作常用的 Shell命令。 (3)熟悉4种数据库操作常用的Java API。 A.4.2实验平台 (1)操作系统:Linux(建议Ubuntu 16.04)。(2...
列族数据库将数据存储在列族中,例如HBase和Cassandra。文档数据库将数据存储在文档中,例如MongoDB和CouchDB。图形数据库将数据存储在图形中,例如Neo4j和OrientDB。 5.5 NoSQL的三大基石 NoSQL数据库的三大基石...
详细地介绍NoSQL数据库,NoSQL数据库的特点,适用场景,与关系型数据库的对比,Redis数据库的介绍,Redis与MongoDB数据库、MySQL数据库的比较,Redis数据库在Linux系统下的安装与部署。
NoSQL数据库技术实战 数据库书籍!