一、Redis
Redis是一种基于key-value存储格式的nosql数据库,在结构部署上采用了master/slave的方式,其中slave节点起到备份的作用,当master节点出现问题的时候,slave节点可替换成master,从而确保了系统安全稳定的特性。
分布式存储单元:slot(一组key/value存储记录的集合)
一个cluster里面可能会有多个matser节点,master节点通过互相通信来记录彼此之间所存储的slot信息,从而确保了client 端可以通过任何master节点定位到需要的slot,获取到slot信息后,client端还会将该slot地址缓存到本地,从而加快了下次查询的效 率。
部署结构如图所示:
注:图中没有画出slave节点(slave只是起到备份master的作用),所有的圆圈全部为master,并且master之间的通信呈网状结构。
二、MongoDB
同CouchDB一样,MongoDB也是一种面向文档的nosql数据库,所不同的是在存储方式上采用的是分布式存储,其部署结构与Redis相似(基于master/slave方式),只不过功能组件较Redis划分的更加详细,如图所示:
图片说明:
shard:每一个master节点和用于备份它的slaves称之为一个shard,系统由多个shards组成
config servers:记录了每一个shard的地址,和shard所存储的数据信息
mongos:同Redis的部署结构相比,mongos相当于是master和client之间的一个中间节点,起到路由和协调的功能,client端 不再直接与master进行交互,而是通过mongos找到合适的master,在将master的计算结果返回到client
分布式存储单元:chunk
MongoDB中,Collection的概念类似于关系数据库中的Table,用来存储具有某一类性质的数据,而chunk是collection中一组元素的集合,mongoDB通过将每个Collection划分成多个chunk来实现分布式存储。
官方文档中所声明的功能特性主要有以下几个方面:
1.系统横向扩展功能--shard的热插拔
2.自动切片功能,当每个chunk的数据量大到溢出时,mongDB会重新进行切片处理
3.自动故障转移,master节点出现问题时,slave节点会替换掉master
4.负载均衡
5.query查询支持(通过JSON表达式来描述)
6.框架封装MapReduce组件
mapReduce功能函数只能用javascript编写,并且通过控制台命令执行
7.GridFS文档系统--功能类似于Hadoop的HDFS,实现分布式存储功能
三、Hbase
HBase基于Google的BigTable构建,是一种column-oriented类型的nosql数据库,在部署结构上依然采用master/slave方式,但是它的master/slave理念与MongoDB和Redis完全不同。
分布式存储单元:Region
Hbase的schema描述在概念模型上延续了关系数据的Table定义,只不过它所定义的Table是没有column约束的,Hbase通过将Table切割成多个Region来实现分布式存储的功能,这样每个Region都封装了一组Row的范围。
Hbase主要包含了3大功能组件,包括:
1.RegionServer:在HBase中,RegionServer充当slave角色,负责与client端进行交互。
2.MasterServer:充当master角色,负责将Region分配给RegionServer、动态加载或卸载RegionServer、对RegionServer实现负载均衡功能、管理schema定义
3.ClientLibrary:负责查找并缓存RegionServer及它所存储的Region地址(通过METADATATabel)
在Hbase部署中,client不再和master进行交互,所有的读写操作都是直接通过RegionServer来完成,而master在此起到了负载均衡的作用,当某一个RegionServer加载量较大时,master可以将其中的Region重新切片部署。
官方文档中所声明的功能特性主要有以下几个方面:
1.系统横向扩展功能—RegionServer热插拔
2.基于行的读写一致性
3.自动切片功能(基于Region)
4.自动故障转移
RegionServer出现问题时,系统会转移到其他的RegionServer进行处理
5.负载均衡
6.集成Hadoop框架
存储基于Hadoop的HDFS,分布式计算基于Hadoop的MapReduce
7.块缓存功能和丰富的过滤器功能--便于查询操作
8.提供连接池功能
9.基于cell的版本功能
10.java API和REST API
优势:
Query功能强大--HIVE框架支持
功能模块划分详细,基本上每一个功能模块都是通过一个框架来实现
相关推荐
Nosql数据库可以部署在廉价的硬件之上,支持分布式存储,能透明地扩展节点。 2. 分布式数据库的定义和特点 分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库...
- **分布式系统**:NoSQL数据库天然支持分布式部署,适用于跨地域的分布式系统架构。 - **高并发环境**:在线游戏、电商平台等高并发应用场景下,NoSQL数据库的性能优势明显。 ### NoSQL数据库与SQL数据库的区别 ...
### NoSQL数据库之Redis数据库管理视频教程 #### NoSQL数据库简介 NoSQL(Not Only SQL)数据库是指非关系型数据库,它们与传统的关系型数据库在数据存储方式上有显著区别。NoSQL数据库通常支持灵活的数据模式,...
NoSQL数据库学习教程 CAP定律是NoSQL数据库存在的三大基石之一,CAP定律是指在分布式系统中,无法同时满足一致性、可用性和分区容忍性这三个属性。其中,一致性是指所有节点在同一时间看到相同的数据;可用性是指...
BigTable是另一种NoSQL数据库,设计目的是可靠的处理PB级别的数据,并且能够部署到上千台机器上。Bigtable已经实现了适用性广泛、可扩展、高性能和高可用性等目标。 Bigtable的功能在很多方面和数据库很类似:它...
NoSQL数据库,全称为"Not Only SQL",是近年来在大数据处理和分布式系统中广泛应用的一种非关系型数据库。与传统的关系型数据库相比,NoSQL数据库在处理大规模数据、高并发访问和分布式存储方面具有优势,尤其适合...
在第二章中,重点讲解了NoSQL数据库的基本原理,包括它如何打破关系模型的常规特征,以及它对完整性约束和事务机制的不同处理方式。 首先,关系模型是传统数据库的核心,包括实体(如学生、教师等)、属性(如学生...
NoSQL数据库,全称为"Not Only SQL",是一种非关系型的数据库系统,旨在应对现代互联网应用中的大规模数据处理和高性能需求。随着Web2.0时代的到来,传统的基于关系型数据库的架构开始面临挑战,尤其是在处理高并发...
"NoSQL数据库MongoDB基础学习" MongoDB 是一种基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非...
NoSQL数据库的核心理念是灵活性和可扩展性,它们通常不采用固定的表结构,而是支持多种数据存储方式,如键值对、文档、列族和图数据库等。这种灵活性使得NoSQL能够更好地适应快速变化的应用需求和大数据处理场景。 ...
7. 数据中心支持(Multi-datacenter Support):Oracle NoSQL数据库支持跨多个数据中心部署,增强了系统的容错性和灾难恢复能力,保证了服务的高可用性。 在Oracle OpenWorld 2017大会上,Oracle展示了关于Oracle ...
### NoSQL数据库概述 #### 一、NoSQL简介 NoSQL数据库作为一种非关系型数据库,其设计理念在于灵活性、高并发读写能力和分布式存储,旨在满足大数据应用和实时Web应用的需求。与传统的关系型数据库相比,NoSQL...
- 容器化和Kubernetes:NoSQL数据库开始支持容器化部署,利用Kubernetes进行集群管理。 5. **应用场景** - 社交媒体:处理用户生成内容和关系网络。 - 电子商务:处理商品信息、用户行为和订单数据。 - 物联网...
### NoSQL数据库之Redis知识点详解 #### 一、NoSQL数据库概述 - **NoSQL**:Not Only SQL,指的是非关系型数据库。这类数据库的设计旨在处理海量数据,并且支持高并发访问,通常用于大规模分布式存储环境中。 - *...
本文将深入探讨NoSQL数据库技术以及在构建数据库资源调度平台架构中的实践。 NoSQL数据库的四大类型包括键值存储、列族、文档型和图形数据库,每种都有其独特的优点和适用场景。键值存储如Redis,适合缓存和快速...
erlang开发的开源高可靠性nosql数据库tiger介绍可靠性: 写:对于n=2f 1 机器集群,在f台机器宕机的情况下可写 读:只要是没有宕机的机器都是可读的一致性: 强一致性扩展性: 读的能力可以线性扩展 功能: ...
### NoSQL数据库详细介绍入门经典 #### 序言 随着互联网技术的发展及大数据时代的到来,传统的关系型数据库在处理海量数据时逐渐显露出不足。NoSQL(Not Only SQL)数据库应运而生,以其灵活的数据模型、高扩展性...
**Java嵌入式NoSQL数据库之Berkeley DB Java Edition** Berkeley DB Java Edition(简称BDB JE)是一种高性能、轻量级的嵌入式数据库系统,由Oracle公司开发,广泛应用于需要快速数据存储和检索的应用场景。它并非...
MongoDB是一种流行的NoSQL数据库,尤其在大数据处理和分布式存储领域有着广泛的应用。在腾讯的CMongo架构中,它被深度定制和优化以满足腾讯业务的高并发、大规模数据存储需求。本文将深入探讨NoSQL数据库技术,特别...
集中存储是最基础的数据库部署模式,所有的数据存储和操作都在一台服务器上进行。这种模式简洁易管理,适合数据量小、访问请求不高的场景。然而,随着数据量的增长和访问压力的增加,集中存储的局限性会逐渐显现,...