写点什么

12 款免费与开源的 NoSQL 数据库介绍

  • 2014-01-07
  • 本文字数:2093 字

    阅读完需:约 7 分钟

Naresh Kumar 是位软件工程师与热情的博主,对于编程与新事物拥有极大的兴趣,非常乐于与其他开发者和程序员分享技术上的研究成果。近日,Naresh撰文谈到了12 款知名的免费、开源NoSQL 数据库,并对这些数据库的特点进行了分析。

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

1. MongoDB

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

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

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、sorted set 及 list,因此 Redis 也称作数据结构服务器。这个系统可以帮助你执行原子操作,比如说增加 hash 中的值、集合的交集运算、字符串拼接、差集与并集等。Redis 通过内存中的数据集实现了高性能。此外,该数据库还兼容于大多数编程语言。

6. Riak

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

7. Neo4j

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

8. Hadoop HBase

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

9. Couchbase

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

10. MemcacheDB

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

11. REVENDB

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

12. Voldemort

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

各位 InfoQ 读者,不知在你的项目中曾经、现在或是未来使用了哪些 NoSQL 数据库。现今的 NoSQL 世界纷繁复杂,NoSQL 数据库也多如牛毛,而且有一些数据库提供了相似的特性,本文所列出的只是其中比较有代表性的 12 款 NoSQL 产品。你是否使用过他们呢?是否使用了本文没有介绍的产品呢?他们有哪些特性打动了你,让你决定使用他们呢?非常欢迎将你的经历与看法与我们一起分享。

2014-01-07 20:5014272
用户头像

发布了 88 篇内容, 共 272.3 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

你真的在做持续集成吗?

冯文辉

DevOps 持续集成 CI/CD

架构师训练营第5周总结

aoeiuvzcs

架构师训练营第5周作业

aoeiuvzcs

推荐 10个 NB的 IDEA 插件,开发效率至少提升一倍

程序员小富

Java 效率 IDEA

如何写一份合格的技术简历?

通天哪吒

面试

我终于弄懂了Python的装饰器(一)

BigYoung

Python 装饰器

Spring Boot 最流行的 16 条实践解读,值得收藏!

Java小咖秀

spring 学习 Spring Boot SpringBoot 2 经验分享

再谈任务分解

松花皮蛋me

Java 精益开发

Atlassian Team Playbook | OKR 好的不只是逼格

Atlassian

开发

深入理解CAS:以AtomicInteger为例

itlemon

Atomic CAS AtomicInteger 自旋

想怎么玩,就怎么玩!搭载桌面级十代酷睿的神舟超级战神真香!

最新动态

[架构师训练营] Week02 - 学习总结

谭方敏

创业使人成长系列 (1)- 从失败中学习

石云升

创业 个人成长 成长

第五周作业

可读代码编写炸鸡四(下篇) - 提炼注释的下一步是提炼注释

多选参数

代码质量 代码 代码组织 代码规范

小姐姐面试蚂蚁金服被虐经历,哪吒心疼.

通天哪吒

面试

一篇文章深入理解JDK8 HashMap

itlemon

源码 hashmap 线程安全

功利学习法:我为什么要这么功利?

非著名程序员

学习 程序员 程序人生 提升认知

架构师训练营总结 -5

River Tree

极客大学架构师训练营 个人总结

猿灯塔:spring Boot Starter开发及源码刨析(一)

猿灯塔

Java 源码剖析

第五周学习总结

week5 coding

GAC·DU

一致性Hash算法

莫莫大人

极客大学架构师训练营

小师妹学JVM之:Dirty cards和PLAB

程序那些事

Java JVM 小师妹 性能调优 签约计划第二季

[架构师训练营] Week02 - 作业

谭方敏

直接赋值,深拷贝和浅拷贝

Leetao

Python Python基础知识

Homework-我的一致性Hash算法

River Tree

Homework

week5 总结

GAC·DU

一篇文章深入理解JDK7 HashMap

itlemon

hashmap map 源码解析 哈希冲突

编程能力 —— TicTacToe(井字棋)

wendraw

Java 大前端 编程能力

环信即时通讯云荣获《2020年度云通讯产品创新奖》

DT极客

12款免费与开源的NoSQL数据库介绍_语言 & 开发_张龙_InfoQ精选文章