常见的NoSql系统使用场景分析--转载
•Cassandra
•特性:分布式与复制的权衡\根据列和键范围进行查询\BigTable类似的功能:列,列族\写比读快很多
•最佳适用:写操作较多,读比较少的时候。如果你的系统都是基于Java的时候。
•应用场景:银行,金融行业。数据分析。
----------------------------------------------------------------------------------
•MongoDB
•特性:持久性更好\主从复制\查询利用javascript表达式\服务器端运行javascript函数\比CouchDB更容易就地升级\数据存储使用的是内存映射文件\数据库崩溃后需要对表进行修复\内置Sharding
•最佳适用:如果你需要动态的查询,如果你更偏向与定义索引而非 map/reduce,如果你针对大数据库想要更好的性能,如果你想使用CouchDB而数据变化太快,磁盘不够用的话,可以使用MongoDB。
•应用场景:一言以蔽之,MySQL或PostgreSQL的替代品。
----------------------------------------------------------------------------------
•Redis
•特性:内存数据库\2.0版本之后可以部署到硬盘上\主从复制\简单的Key-Value\集合、列表、散列结构\Value可以设定过期
•最佳适用:在数据库大小可预见的前提下,适用于数据变化速度快的应用。
•应用场景:股价系统,数据分析,实时数据采集以及实时通信场景。
----------------------------------------------------------------------------------
•CouchDB
•特性:双向复制\连续或ad-hoc\冲突检测\主主复制(master-master replication)\多版本并发控制,写操作不会阻塞读取
•最佳适用:对于数据变化不太频繁的业务,运行有预先定义的查询。此外对于版本控制有高要求的业务同样适用。
•应用场景:CRM、CMS系统。主主复制是非常有趣的功能特性,它令多站点部署变得更加容易。
----------------------------------------------------------------------------------
•HBase
•特性:分布式与复制的权衡\模仿BigTable\Map/reduce Hadoop
•最佳适用:如果你喜欢BigTable,如果你需要随即、实时的读写大数据(Big Data),可以使用HBase。
•应用场景:Facebook网站邮件数据库等。