常见的几个NO_SQL数据库
来源:互联网 发布:绿色上网软件 编辑:程序博客网 时间:2024/06/03 13:43
各个NO_SQL数据库的比较 CouchDB, Cassandra, Mongodb,Redis, Riak, Membase, Neo4j and HBase:
1.CouchDB的(V1.1.0)
实现语言:Erlang
要点:DB一致性,易用性
许可证:apache
协议:HTTP / REST
双向的复制,
连续或即席
带有冲突检测,
还有,master-master的复制。
MVCC(多版本一致性控制)- 写操作不阻止读
文件的以前版本
仅崩溃(可靠)的设计:Crash-only (reliable) design
需要不停的压缩
视图:内嵌的map/reduce
格式化视图:lists & shows
服务器端的文档验证
身份验证
实时更新通过 _changes
附件处理
因此,CouchApps(JS独立应用程序)
包括jQuery的库
最适用于:累积,偶尔变化的数据,预先定义的查询要运行。多用在版本很重要的地方
例如:客户关系管理(CRM),CMS系统。master-master replication是一个特别有趣的的的功能
,便于多站点部署。
2. redis(v2.4)
设计语言: c/c++
优点: 速度非常快
许可证: BSD的
协议:Telnet-like
带有磁盘备份的内存数据库
目前还没有磁盘交换
master-slave replication
简单的值或者 hash表
NCR & co (对统计和速率限制很有好处)
sets
lists
hash tables
sorted sets
事务的支持
可以对值进行过期时间设置
发布和订阅消息
最适用于:对于迅速变化的一个可预见的数据库的大小(应该适合大多在内存)的数据。
例如:股票价格。分析。实时数据采集。实时通信。
3. MongoDB
实现语言:c++
优点: 保留了一些友好的SQL属性,比如 查询和索引
许可证:AGPL (Drivers: Apache)
协议:自定义,二进制(BSON)
Master/slave replication 主从复制
sharding build-in 内置分片
查询javascript的表达式
服务器端执行任意的JavaScript功能
比CouchDB有更好的update-in-place
使用内存映射文件的数据存储
很好的性能
32位的系统 内存限制到2.5G
空数据库占内存高达192M
GridFS存储大数据和其元数据(不是再真正的FS)
最适用于:如果您需要动态查询。如果你喜欢定义索引,而不是Map / Reduce的功能。
如果你需要一个大的DB的性能良好。如果你想CouchDB的,但您的数据变化太大,填补了磁盘。
例如:对于大多数事情,你会做与MySQL或PostgreSQL,但预定义的列的话 还是需要mongoDB。
4.Cassandra
实现语言:java
优点:bigTable的使用
许可证: apache
协议:用户自定义,二进制
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
ecause 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.
5.HBase
(With the help of ghshephard)
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.
1.CouchDB的(V1.1.0)
实现语言:Erlang
要点:DB一致性,易用性
许可证:apache
协议:HTTP / REST
双向的复制,
连续或即席
带有冲突检测,
还有,master-master的复制。
MVCC(多版本一致性控制)- 写操作不阻止读
文件的以前版本
仅崩溃(可靠)的设计:Crash-only (reliable) design
需要不停的压缩
视图:内嵌的map/reduce
格式化视图:lists & shows
服务器端的文档验证
身份验证
实时更新通过 _changes
附件处理
因此,CouchApps(JS独立应用程序)
包括jQuery的库
最适用于:累积,偶尔变化的数据,预先定义的查询要运行。多用在版本很重要的地方
例如:客户关系管理(CRM),CMS系统。master-master replication是一个特别有趣的的的功能
,便于多站点部署。
2. redis(v2.4)
设计语言: c/c++
优点: 速度非常快
许可证: BSD的
协议:Telnet-like
带有磁盘备份的内存数据库
目前还没有磁盘交换
master-slave replication
简单的值或者 hash表
NCR & co (对统计和速率限制很有好处)
sets
lists
hash tables
sorted sets
事务的支持
可以对值进行过期时间设置
发布和订阅消息
最适用于:对于迅速变化的一个可预见的数据库的大小(应该适合大多在内存)的数据。
例如:股票价格。分析。实时数据采集。实时通信。
3. MongoDB
实现语言:c++
优点: 保留了一些友好的SQL属性,比如 查询和索引
许可证:AGPL (Drivers: Apache)
协议:自定义,二进制(BSON)
Master/slave replication 主从复制
sharding build-in 内置分片
查询javascript的表达式
服务器端执行任意的JavaScript功能
比CouchDB有更好的update-in-place
使用内存映射文件的数据存储
很好的性能
32位的系统 内存限制到2.5G
空数据库占内存高达192M
GridFS存储大数据和其元数据(不是再真正的FS)
最适用于:如果您需要动态查询。如果你喜欢定义索引,而不是Map / Reduce的功能。
如果你需要一个大的DB的性能良好。如果你想CouchDB的,但您的数据变化太大,填补了磁盘。
例如:对于大多数事情,你会做与MySQL或PostgreSQL,但预定义的列的话 还是需要mongoDB。
4.Cassandra
实现语言:java
优点:bigTable的使用
许可证: apache
协议:用户自定义,二进制
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
ecause 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.
5.HBase
(With the help of ghshephard)
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)
- 常见的几个NO_SQL数据库
- Reids框架NO_SQL非关系数据库的一些简单应用
- 连接数据库服务器端的几个常见错误
- 几个常见的key-value开源内存数据库
- 影响SQL Server数据库应用性能的几个常见因素
- 影响SQL Server数据库应用性能的几个常见因素
- 影响SQL Server数据库应用性能的几个常见因素
- 影响SQL Server数据库应用性能的几个常见因素
- 几个常见的算法
- VC常见的几个error
- 几个常见的停止错误
- 几个常见的停止错误
- 几个常见数据类型的转换
- C#常见的几个技巧
- 几个常见的压缩算法
- Documentum几个常见的异常
- 几个常见的音调电路
- 几个不常见的关键字
- Websphere Portlet Factoroy 启动服务
- c++builder选择文件,并得到文件路径!OpenDialog Edit!
- vector list map 的区别
- ARM assemble question of interview (one)
- oracle 10g将数据导入到指定表空间的步骤
- 常见的几个NO_SQL数据库
- Android开发
- Adw Launcher相关
- U_BOOT移植时出现相关错误时解决办法
- ssh远程连接不需要密码
- DrawIndexedPrimitive函数的详细解释
- 会讲的六十八个故事
- 如何将表单数据从一页传递到另一个,通过使用 GET 和 POST 活动服务器页中
- 我们工作到底为了什么