1、MongoDB——最先进的、跨平台的、面向文档的数据库。MongoDB是一个基于分布式文件存储的数据库,用C++语言编写。它旨在为Web应用程序提供可扩展的高性能数据存储解决方案。应用程序性能取决于数据库性能。MongoDB是功能最强大的非关系数据库,与关系数据库最相似。随着MongDB3.4的发布,其应用场景得到进一步拓展。MongoDB的核心优势是灵活的文档模型、高可用的副本集和可扩展的分片集群。你可以尝试从几个方面来了解MongoDB,比如实时监控MongoDB的工具、内存使用和页面错误、连接数、数据库操作、复制集等。2.Elasticsearch——为云端构建的分布式RESTful搜索引擎.ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个基于RESTfulWeb界面的分布式多用户全文搜索引擎。Elasticsearch使用Java开发并根据Apache许可条款作为开源发布,是一种流行的企业级搜索引擎。ElasticSearch不仅是一个全文搜索引擎,还是一个分布式的实时文档存储,其中每个字段都是索引数据,可以被搜索到;它还是一个分布式搜索引擎,具有实时分析功能,可以扩展到数百台服务器存储和处理PB级数据。ElasticSearch在底层使用Lucene来完成它的索引功能,所以它的很多基本概念都是从Lucene衍生出来的。3.Cassandra-最初由Facebook开发的开源分布式数据库管理系统,旨在处理许多商品服务器上的大量数据,提供无单点故障的高可用性。ApacheCassandra是一个开源的分布式NoSQL数据库系统。它集成了GoogleBigTable的数据模型和AmazonDynamo的全分布式架构。它于2008年开源。此后,由于其良好的可扩展性,Cassandra被Digg、Twitter等Web2.0网站采用,成为流行的分布式结构化数据存储解决方案。因为Cassandra是用Java写的,理论上可以在JDK6及以上的机器上运行。官方测试的JDK有OpenJDK和Sun的JDK。Cassandra的操作命令类似于我们平时操作的关系型数据库。对于熟悉MySQL的朋友来说,操作起来会很容易上手。4.Redis——开源(BSD许可)内存数据结构存储,用作数据库、缓存和消息代理。Redis是一个开源的、网络化的、基于内存的、持久化的日志型、Key-Value数据库,使用ANSIC语言编写,并提供多种语言的API。Redis具有三个主要特性,使其有别于许多竞争对手:Redis是一种将数据完全存储在内存中的数据库,仅将磁盘用于持久性目的;Redis相对于很多key-value数据存储系统来说,数据类型比较丰富;Redis可以将数据复制到任意数量的从服务器。5.Hazelcast-基于Java的开源内存数据网格。Hazelcast是一个内存数据网格,为Java程序员提供关键任务事务和万亿级内存应用。虽然Hazelcast没有所谓的“Master”,但它仍然有一个Leader节点(最老的成员)。这个概念和ZooKeeper中的Leader类似,但是实现原理完全不同。同时Hazelcast中的数据是分布式的,每个成员都持有一些数据和对应的备份数据,这也是与ZooKeeper不同的地方。Hazelcast的应用便利性深受开发者喜爱,但如果要投入使用,则需要慎重考虑。6.EHCache——广泛使用的开源Java分布式缓存。主要用于通用缓存、JavaEE和轻量级容器。EhCache是??一个纯Java的进程内缓存框架,速度快,精简,是Hibernate中默认的CacheProvider。主要特点是:快速简单,具有多种缓存策略;数据缓存有内存和磁盘两级,不用担心容量问题;缓存数据会在虚拟机重启时写入磁盘;RMI和可插拔API可以通过其他方式使用分布式缓存;有一个缓存和缓存管理器监听接口;支持多个缓存管理器实例,一个实例支持多个缓存区;提供Hibernate缓存实现。7.Hadoop——一个用Java编写的开源软件框架,用于分布式存储和分布式处理超大数据集。用户可以在不知道分发的底层细节的情况下开发分布式程序。充分利用集群进行高速计算和存储。Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。Hadoop框架的核心设计是:HDFS和MapReduce。HDFS为海量数据提供存储,MapReduce为海量数据提供计算。8.Solr-开源企业搜索平台,用Java编写,来自ApacheLucene项目。Solr是一个独立的企业级搜索应用服务器,提供类似于Web-service的API接口。用户可以通过http请求向搜索引擎服务器提交一定格式的XML文件,生成索引;他们还可以通过HttpGet操作提交搜索请求,并获得XML格式的返回结果。和ElasticSearch一样,它也是基于Lucene,但对其进行了扩展,提供了比Lucene更丰富的查询语言,同时实现了可配置、可伸缩和优化的查询性能。9.Spark——Apache软件基金会中最活跃的项目,是一个开源的集群计算框架。Spark是一个类似于Hadoop的开源集群计算环境,但两者之间存在一些差异,使得Spark在某些工作负载上更胜一筹,换句话说,Spark启用了内存分布式数据集,除了能够提供交互式查询外,它还可以还优化迭代工作负载。Spark是用Scala语言实现的,使用Scala作为它的应用框架。与Hadoop不同,Spark和Scala紧密集成,Scala可以像操作本地集合对象一样轻松地操作分布式数据集。10.Memcached——一个通用的分布式内存缓存系统。Memcached是DangaInteractive最初为LiveJournal开发的分布式缓存系统,但被许多软件(如MediaWiki)使用。Memcached作为高速分布式缓存服务器,具有以下特点:协议简单、基于libevent的事件处理、内置内存存储。11.ApacheHive——在Hadoop之上提供一个类似SQL的层。Hive是一个基于Hadoop的数据仓库平台。通过hive可以方便的进行ETL工作。hive定义了一种类似于SQL的查询语言,可以将用户编写的SQL转换成相应的Mapreduce程序,基于Hadoop执行。目前,ApacheHive2.1.1版本已经发布。12.ApacheKafka-最初由LinkedIn开发的高吞吐量、分布式订阅消息系统。ApacheKafka是一个用Scala编写的开源消息系统项目。该项目的目标是为处理实时数据提供一个统一、高吞吐量、低延迟的平台。Kafka维护按类别分类的消息,称为主题。生产者向kafka主题发布消息,消费者向主题注册并接收发布到这些主题的消息。Kafka作为一个或多个服务器的集群运行,每个服务器称为代理。13.Akka-用于在JVM上构建高度并发、分布式和弹性消息驱动应用程序的工具包。Akka是一个用Scala编写的库,可简化容错、高度可扩展的Java和ScalaActor模型应用程序的编写。已成功应用于电信行业,系统几乎永不宕机。14.HBase-开源、非关系、分布式数据库,使用Google的BigTable建模,用Java编写,并在HDFS上运行。与FUJITSUCliq等商业大数据产品不同,HBase是GoogleBigtable的开源实现。与GoogleBigtable使用GFS作为其文件存储系统类似,HBase使用HadoopHDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据。HBase也使用HadoopMapReduce来处理HBase中的海量数据;GoogleBigtable使用Chubby作为协作服务,HBase使用Zookeeper作为对口。15.Neo4j——一个用Java实现的开源图形数据库。Neo4j是一个高性能的NOSQL图数据库,将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、完全事务性的Java持久性引擎。16.CouchBase——一个开源的分布式NoSQL面向文档的数据库,针对交互式应用程序进行了优化。如果你之前没有使用NoSQL的经验,那么理解couchbase有两个关键点:延迟写入和松散存储。该产品基于ApacheCouchDB并集成了GeoCouch(一种基于Erlang的紧密集成的地理空间索引系统,支持LBS应用程序)。17.ApacheStorm——一个开源的分布式实时计算系统。ApacheStorm是一种流式数据处理框架,可以近乎实时地在数据之上运行用户代码片段。它实际上是一系列连接在一起的管道。通常用于简单的分析任务,例如计算,以及清理、规范化和准备数据以供摄取以供长期存储。18.CouchDB——一个开源的面向文档的NoSQL数据库,使用JSON来存储数据。CouchDB是一种开源的面向文档的数据库管理系统,可通过RESTfulJavaScript对象表示法(JSON)API访问。CouchDB到顶层实现的数据结构是两种B+Tree。19.OracleCoherence——一种内存数据网格解决方案,通过提供对常用数据的快速访问,使企业能够以可预测的方式扩展关键任务应用程序。简单来说,Coherence只支持Java、.NET和C++API三个版本,都是面向对象的语言,这也说明了Coherence与应用开发的亲和力。20.Titan——一个可扩展的图数据库,优化用于存储和查询包含分布在多机集群中的数百亿个顶点和边的图。支持不同的分布式存储层:Cassandra1.1和HBase0.92。Blueprints图形API、Gremlin图形遍历语言、Frames图形到对象映射器、Rexster图形服务器的本地实现。21.AmazonDynamoDB-一种快速、灵活且完全托管的NoSQL数据库服务,适用于需要毫秒级一致性和延迟的任何规模的应用程序。AmazonDynamoDB是一种完全托管的NoSQL数据库服务,可提供快速且可预测的性能并无缝扩展。22.AmazonKinesis——AWS上的实时流数据平台。Web应用程序、移动设备、可穿戴设备、工业传感器以及许多软件应用程序和服务可以生成大量需要持续收集、存储和处理的流数据(有时每小时数TB)。AmazonKinesis就是出于这种需求而诞生的。23.Datomic-完全事务性、云就绪、分布式数据库,用Clojure编写。Datomic是一个灵活的、基于时间因素的数据库,支持联合查询、弹性可伸缩性和ACID事务支持。Datomic提供高可用的分布式存储服务
