一、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框架支持
功能模块划分详细,基本上每一个功能模块都是通过一个框架来实现
相关推荐
启用高度可靠、可扩展、可用的数据。《Oracle NoSQL数据库:...● 学习企业级Oracle NoSQL数据库部署中最佳的容量规划和调节实践 ● 将Oracle NoSQL数据库与Oracle数据库、Oracle Event Processing以及Hadoop相集成
详细地介绍NoSQL数据库,NoSQL数据库的特点,适用场景,与关系型数据库的对比,Redis数据库的介绍,Redis与MongoDB数据库、MySQL数据库的比较,Redis数据库在Linux系统下的安装与部署。
5 NOSQL们背后的共有原则 5 假设失效是必然发生的 5 对数据进行分区 5 保存同一数据的多个副本 5 动态伸缩 5 查询支持 5 使用 Map/Reduce 处理汇聚 5 基于磁盘的和内存中的实现 5 仅仅是炒作? 6 附 6 感谢 6 版本志 ...
erlang开发的开源高可靠性nosql数据库tiger介绍可靠性: 写:对于n=2f 1 机器集群,在f台机器宕机的情况下可写 读:只要是没有宕机的机器都是可读的一致性: 强一致性扩展性: 读的能力可以线性扩展 功能: ...
从零开始讲解大数据列式存储NoSQL数据库Kudu,基于Kudu构建高性能随机读写访问的数据存储系统,原理从入门到深入,搞定面试 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为...
RDBMS+NoSQL混合部署和数据库描述(JSON).md
该报告介绍了NoSQL的相关概念和实现技术,并选取三个NoSQL数据库(MongoDB、HBase、Redis)进行技术预研,从数据库的安装、部署、备份恢复、集群扩展、性能、客户端等方面进行比较,结合银行自身业务特点,分析每个...
log2nosql 热部署组件,用于查看存储在noSQL数据库中的日志
NOSQL UNDO利用内置的NoSQL数据库的日志记录和快照机制,并且能够撤消只要日志中存在的操作。 当前,NoSQL撤消仅支持MongoDB,可以将其扩展为支持其他NoSQL数据库。入门这些说明将为您提供在本地计算机上运行并运行...
摄取任何数据[摄取数据的不同方式,也可以部署代理] 转换 [不需要在摄取前进行转换,可以以绝对和概率方式或两者同时应用] filter & join [在某些运行条件下过滤传入流和/或与其他流合并以产生另一个等] 聚合 [切片 ...
Aerospike是一个分布式,可扩展的NoSQL数据库。 它的设计具有三个主要目标: 创建一个满足当今Web规模应用程序需求的高性能,可扩展平台提供传统数据库所期望的鲁棒性和可靠性(即ACID)。 提供运营效率(最少的...
自主研发的基于分布式文件存储的NoSQL数据库, 非开源 属于CamelSoft系列基础开发组件. 可以方便快捷的搭建和部署基于分布式存储应用的云端系统, 轻松实现跨区域分布式存储系统. 由C++语言编写, 属于非关系数据库 ...
项目名称:Rosedb - 多元数据结构支持的Go语言NoSQL数据库 项目简介: Rosedb是一个采用Go语言实现的NoSQL数据库,基于高效的bitcask模型设计。该数据库原生支持多种数据结构,提供了丰富的数据存储和检索能力。 ...
在Tair出现之前的很长一段时间里,像redis、memcache这些知名NoSql数据库是不支持分布式的,在这样的背景下,由淘宝网自主开发并在2010.6开源的一个高性能、高扩展、高可靠分布式缓存,类似map的key/value结构,在...
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有: *面向集合存储,易存储对象类型的数据。 *模式自由。 *支持动态查询。 *支持完全索引,包含内部对象。 *支持查询。 *支持复制...
这是一个惊人的效率提升,特别是在大型部署上。 真正的可扩展性 :Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。 多数据...
多样性、大容量给数据的存储和处理带来了巨大的挑战,当传统关系型数据库无法应对应用程序的快速迭代时,天生具备弱数据结构模式、易扩展等特性的NoSQL数据库得以飞速发展,在众多网络及新型应用程序中得以部署。...
HBase分布式NoSQL数据库实验 1.HBase基础 HBase伪分布式部署 HBase Shell接口操作 HBase Web UI管理 2.HBase数据管理 HBase DDL操作 HBase DML操作 练习1:HBase Shell操作 练习2:HBase Shell数据操作 案例:CMS...
NoSQL键值数据库存储为小的JSON文件的目录树,可以将其部署为静态网站的一部分,并以有效的方式从客户端浏览器进行查询。 数据存储在JSON文件中,当满足大小阈值时,这些文件将分支为较小的JSON文件。 用于浏览器的...
其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、...