Skip to content

非结构化数据库

NoSQL(Not Only SQL),它是一个通用的述语,也就是非关系型数据库,它并不是以 sql 作为它的主要访问语言。 现在有比较多的 NoSQL 数据库,BerkeleyDB 是一个本地 NoSQL 数据库;HBase 是一个分布式数据库(从技术上说它是一个数据存储而不是数据库)

NoSQL 产生的主要背景 随着互联网的发展,传统的关系型数据库在应付超大规模和高并发的系统上已经“力不从心”,而非关系型数据库则在这一方面有优势。

NoSQL 数据库的分类:

  • 键值(Key-Value)存储数据库 它是以键值对的格式进行存储的,类似于 Java 中的 Map,在数据库中有一个特定的 key 键和键所指向的 value 值。 优势:简单且易于部署,可以把程序中的数据直接映射到数据库中,使得程序中的数据和数据库中的数据存储方式很相近。如:Redis
  • 列存储数据库 传统的关系型数据库是按行进行存储的,而列数据库则是每一列单独存储。 优势:仅仅查询所需要的列,可以大大提高查询的速度。如:HBase
  • 文档型数据库 这种类型数据库与键值存储类似,这个类型的数据模型是把内容按照某些特定的格式进行存储(如:JSON 格式)。如:MongoDB
  • 图形数据库 它与关系型数据库和列式数据库不同,它是基于灵活的图型模型,并且可以扩展到多个服务器上

NoSQL 数据库的应用场景:

  • 数据量大、数据模型比较简单
  • 对数据库的性能要求比较高,需要节省开发及维护成本
  • 不需要高度的数据一致性
  • 对于给定的吸,比较容易映射复杂值的环境,数据之间关系性不强

关系型数据库与非关系型数据库的区别:

对比项关系型数据库非关系型数据库
成本相对非关系型数据库可能存在软件购买费用易于部署
基本是开源软件
查询速度查询速度慢(存储于硬盘中)查询速度快(存储于缓存中)
数据格式基础类型key-value 形式、文档形式、图形形式……
可以存储基础类型、对象、集合……
扩展性有类似 join 这样的多表查询机制限制,扩展难扩展相对容易

MongoDB

MongoDB 是一个基于文档的分布式数据库,由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品。它是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。

MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

HBase

HBase 是一个构建在 HDFS(Hadoop 文件系统)之上的列式数据库。

Redis

img

  • Redis 应用指南 ⚡ - 关键词:内存淘汰事件事务管道发布与订阅
  • Redis 数据类型和应用 - 关键词:STRINGHASHLISTSETZSETBitMapHyperLogLogGeo
  • Redis 持久化 - 关键词:RDBAOFSAVEBGSAVEappendfsync
  • Redis 复制 - 关键词:SLAVEOFSYNCPSYNCREPLCONF ACK
  • Redis 哨兵 - 关键词:SentinelPINGINFORaft
  • Redis 集群 - 关键词:CLUSTER MEETHash slotMOVEDASKSLAVEOF no oneredis-trib
  • Redis 实战 - 关键词:缓存分布式锁布隆过滤器
  • Redis 运维 🔨 - 关键词:安装命令集群客户端

Elasticsearch

Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。

基于 MIT 许可发布 共建 共享 共管