下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

优秀的开源数据库有哪些?

作者:课课家教育     来源: http://www.kokojia.com点击数:7843发布时间: 2017-08-15 09:30:07

标签: 数据库NoSQL开源数据库

  作为一名软件开发人员或DBA,其中一份必不可少的工作就是与数据库打交道,比如MSSQL服务器、MySQL、Oracle、PostgreSQL、MongoDB等等。众所周知,其中MySQL是目前使用最广泛最好的免费开源数据库,此外,还有一些你不知道或者没用过但又非常出色的开源数据库,例如PostgreSQL、MongoDB、HBase、Cassandra、Couchbase、Neo4j、Riak、Redis、Firebird等。

  现在,NoSQL数据库变得越来越流行,小编在这里总结出了一些非常棒的、免费且开源的NoSQL数据库。在这些数据库中,MongoDB独占鳌头,拥有相当大的使用量。这些免费且开源的NoSQL数据库具有很好的可伸缩性与灵活性,非常适合于大数据存储与处理。相较于传统的关系型数据库,这些NoSQL数据库在性能上具有很大的优势。然而,这些NoSQL数据库未必最适合你。大多数常见的应用仍然可以使用传统的关系型数据库进行开发。NoSQL数据库依然不太适合于那些任务关键型的事务要求。我对这些数据库进行了一些简单介绍,下面就来看看。

免费且开源的NoSQL数据库

  1.MongoDB

  MongoDB是个面向文档的数据库,使用JSON风格的数据格式。它非常适合于网站的数据存储、内容管理与缓存应用,并且通过配置可以实现复制与高可用性功能。

  MongoDB具有很强的可伸缩性,性能表现优异。它使用C++编写,基于文档存储。此外,MongoDB还支持全文检索、跨WAN与LAN的高可用性、易于实现的复制、水平扩展、基于文档的丰富查询、在数据处理与聚合等方面具有很强的灵活性。

  2.Cassandra

  这是个Apache软件基金会的项目,Cassandra是个分布式数据库,支持分散的数据存储,可以实现容错以及无单点故障等。换句话说,“Cassandra非常适合于那些无法忍受数据丢失的应用”。

 2.Cassandra    这是个Apache软件基金会的项目,Cassandra是个分布式数据库,支持分散的数据存储,可以实现容错以及无单点故障等。换句话说,“Cassandra非常适合于那些无法忍受数据丢失的应用”。

  3.CouchDB

  这也是Apache软件基金会的一个项目,CouchDB是另一个面向文档的数据库,以JSON格式存储数据。它兼容于ACID,像MongoDB一样,CouchDB也可以用于存储网站的数据与内容,以及提供缓存等。你可以通过Javascript在CouchDB上运行MapReduce查询。此外,CouchDB还提供了一个非常方便的基于Web的管理控制台。它非常适合于Web应用。

  4.Hypertable

  Hypertable模仿的是Google的BigTable数据库系统。Hypertable的创建者将“成为高可用、PB规模的数据库开源标准”作为Hypertable的目标。换言之,Hypertable的设计目标是跨越多个廉价的服务器可靠地存储大量数据。

  5.Redis

  这是个开源、高级的键值存储。由于在键中使用了hash、set、string、sortedset及list,因此Redis也称作数据结构服务器。这个系统可以帮助你执行原子操作,比如说增加hash中的值、集合的交集运算、字符串拼接、差集与并集等。Redis通过内存中的数据集实现了高性能。此外,该数据库还兼容于大多数编程语言

  6.Riak

  Riak是最为强大的分布式数据库之一,它提供了轻松且可预测的伸缩能力,向用户提供了快速测试、原型与应用部署能力,从而简化应用的开发过程。

 6.Riak    Riak是最为强大的分布式数据库之一,它提供了轻松且可预测的伸缩能力,向用户提供了快速测试、原型与应用部署能力,从而简化应用的开发过程。

  7.Neo4j

  Neo4j是一款NoSQL图型数据库,具有非常高的性能。它拥有一个健壮且成熟的系统的所有特性,向程序员提供了灵活且面向对象的网络结构,可以让开发者充分享受到拥有完整事务特性的数据库的所有好处。相较于RDBMS,Neo4j还对某些应用提供了不少性能改进。

 7.Neo4j    Neo4j是一款NoSQL图型数据库,具有非常高的性能。它拥有一个健壮且成熟的系统的所有特性,向程序员提供了灵活且面向对象的网络结构,可以让开发者充分享受到拥有完整事务特性的数据库的所有好处。相较于RDBMS,Neo4j还对某些应用提供了不少性能改进。

  8.HadoopHBase

  HBase是一款可伸缩、分布式的大数据存储。它可以用在数据的实时与随机访问的场景下。HBase拥有模块化与线性的可伸缩性,并且能够保证读写的严格一致性。HBase提供了一个JavaAPI,可以实现轻松的客户端访问;提供了可配置且自动化的表分区功能;还有Bloom过滤器以及block缓存等特性。

  9.Couchbase

  虽然Couchbase是CouchDB的派生,不过它已经成为了一款功能完善的数据库产品。它向文档数据库转移的趋势会让MongoDB感到压力。每个节点上它都是多线程的,这是个非常主要的可伸缩性优势,特别是当托管在自定义或是Bare-Metal硬件上时更是如此。借助于一些非常棒的集成特性,诸如与Hadoop的集成,Couchbase对于数据存储来说是个非常不错的选择。

  10.MemcacheDB

  这是个分布式的键值存储系统,我们不应该将其与缓存解决方案搞混;相反,它是个持久化存储引擎,用于数据存储并以非常快速且可靠的方式检索数据。它遵循memcache协议。其存储后端用于BerkeleyDB中,支持诸如复制与事务等特性。

  11.REVENDB

  RAVENDB是第二代开源数据库,它面向文档存储并且无模式,这样就可以轻松将对象存储到其中了。它提供了非常灵活且快速的查询,通过对复制、多租与分片提供开箱即用的支持使得我们可以非常轻松地实现伸缩功能。它对ACID事务提供了完整的支持,同时又能保证数据的安全性。除了高性能之外,它还通过bundle提供了轻松的可扩展性。

  12.Voldemort

  这是个自动复制的分布式存储系统。它提供了自动化的数据分区功能,透明的服务器失败处理、可插拔的序列化功能、独立的节点、数据版本化以及跨越各种数据中心的数据分发功能。

  除了上面12款免费与开源的NoSQL数据库介绍之外,小编另外给大家补充其他一些内容!

  1.PostgreSQL

  PostgreSQL可以简称为“postgres”,是一款对象-关系型数据库管理系统,PostgreSQL采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式。PostgreSQL拥有非常完美的驱动,并支持标准的ANSI-SQL和扩展功能,在许多方面都要超过MySQL。

1.PostgreSQL    PostgreSQL可以简称为“postgres”,是一款对象-关系型数据库管理系统,PostgreSQL采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式。PostgreSQL拥有非常完美的驱动,并支持标准的ANSI-SQL和扩展功能,在许多方面都要超过MySQL。

  PostgreSQL是全功能的自由软件数据库,很长时间以来,PostgreSQL是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一一种自由软件的数据库管理系统。许多云服务提供商比如Heroku等,都用PostgreSQL作为他们的RDBMS存储。

  缺点方面,PostgreSQL还欠缺一些比较高端的数据库管理系统需要的特性,比如数据库集群,更优良的管理工具和更加自动化的系统优化功能等提高数据库性能的机制等。

  2.Hadoop(HBase)

  Hadoop(HBase)是一个开源的、基于列存储模型的分布式数据库,它是ApacheHadoop项目的一部分,开发语言为java

  HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。且具有高可靠性、高性能、可伸缩、并建立在关系模型基础上的分布式数据库。

 2.Hadoop(HBase)    Hadoop(HBase)是一个开源的、基于列存储模型的分布式数据库,它是ApacheHadoop项目的一部分,开发语言为java。    HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。且具有高可靠性、高性能、可伸缩、并建立在关系模型基础上的分布式数据库。

  HBase是GoogleBigtable的开源实现,类似GoogleBigtable利用GFS作为其文件存储系统,用以存储大规模结构化数据。HBase利用HadoopHDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;GoogleBigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。

  3.Firebird

  Firebird是一个跨平台的关系数据库,用C和C++开发。目前能够运行在Windows、linux和各种Unix操作系统上,可以对存储过程和触发器提供高性能和强大的语言支持。

  Firebird既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。

  3.Firebird    Firebird是一个跨平台的关系数据库,用C和C++开发。目前能够运行在Windows、linux和各种Unix操作系统上,可以对存储过程和触发器提供高性能和强大的语言支持。    Firebird既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。

  小编结语:

  更多内容尽在课课家教育!

赞(27)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程