之前看过一本名叫<<大数据挑战的书>>。里面主要讲了NOSQL的内容,感觉讲得确实不错,今天来又一次温习一下,我们大话NOSQL。说道NOSQL。我们肯定联想到的内容就是BigData大数据了,不错,当今的时代就是大数据的时代了。假设放在前几年。互联网还没有这么发达的情况下,或许谁也不会听过这个名词。

在讲正题的时候。我做了张图来看看一般服务端架构在面对业务发展的须要时候。一般的演变趋势:

所以假设公司的数据量发展到一定规模的话,能够採用NoSql.好了最终引出了NoSql这个今天的主题了。NoSql能够理解为”Not Only Sql”,主要指的是非关系型。分布式,不提供ACID的数据库设计模式,强调的是类似于Map的“键值存储”。和”文档存储“。面对海量数据。NoSql 採用了一种弱类型的数据。採用更加简单的数据模型,一般都是用字符串表示全部的数据类型。可是他可能不会像关系型数据库一样有那么好的强一致性。应该nosql是一种最终一致性。NoSql也避免了很多诸如联表查询等复杂操作,基本就是简单的赋值,取值等,

能够实现比較难高的吞吐量。

如今的数据库系统可谓是五彩缤纷,来张图看看:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5kcm9pZGx1c2hhbmdkZXJlbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

在介绍nosql之前,要知道的一些海量数据的理论性知识。CAP理论,C,(Consistency)强一致性。A(Available)可用性,P(Partition Tolerance)分区容忍性,能够理解为系统在存在网络分区的情况下仍然能够接受请求。

自然这让我们联系到了另一个理论ACID。A(Atomic)原子性。C(Consistent)一致性, I(Isolation)隔离性。 D(Durablitity)持续性。

另一个比較重要的协议2PC两阶段提交协议,很多分布式关系数据库採用此协议来完毕分布式事务。

以下我们来真正了解一下详细的NOSQL。

K-V数据库

首先我们来了解是Redis,Redis是一个开源的,高级key-value的数据库。他的value不仅支持String类型,并且还有list,set等结构,Redis採用的是内存进行数据存储。等数据到达一定规模后,在持久化到文件或磁盘中。

基于Redis的特点,新浪微博採用的就是Redis,对于微博这种结构清晰,数据规模庞大的应用来说。Redis当然最适合只是了。

Column-Oriented列式数据库

说到列式数据库,我们不得不提到他的始祖。Bigtable数据库,在后来衍射出的非常多数据库都能看到他的影子,列式数据库强调的是一种面向列的稀疏存储,另一个列族的概念,跟关系型数据库的单行单列,不一样,比較典型的Hadoop採用的HBase数据库。

文档型数据库

文档型数据,我这里说的有2种,MongoDB,另一个CouchDB,两者有非常多共同点存储的都是JSON类型数据类型。在文档数据库中文档成为了数据存储的一个基本单位,因此,所存储的数据,甚至能够要求是无结构的,文档可长,可短,每个都以类似于”{“”id”: 200, “msg”:”haha”}这种json格式保存在数据库中。我们重点关注一下MongoDB,在MongoDB中存在着类似于SQL查询语句的操作。可是又不是跟SQL语句全然同样,比方db,user,find(),MongoDB支持Map/Reduce模型。CouchDB详细RestFul API。能够实现用Http请求实现操作。

二者数据库都借助了Map/Reduce,技术提高了数据处理的效率,这对于与存储非结构化,和半结构化的数据都有非常大的帮助。

图存数据库

图存数据库我刚刚听说这个名词的时候。也是认为难以理解,官方给出的定义:图存数据库使用基础的数据结构,来存储代表一个图形的数据,可以通过很方便的方式优雅的呈现不论什么类型的数据。

图存数据库如今一般有3类,Neo4j数据库。GraphDB图存数据库。OrientDB,图存数据库的查询会模仿图的遍历实现查找。通过朋友找到朋友的朋友。终于找到目标。

NoSql就是分为上述的4种类型。突然心血来潮。相到一个比較重要的知识点,数据处理。数据处理寻常也总是有人在提起,我就提提。我说的数据处理指的是传统的压缩算法的实现。一般有2种,一个哈弗曼编码,学过计算机的,数据结构都上过的吧,还有一个L.Z算法系列的,如今应该已经非常多版本号了吧,是基于窗体互动的,核心思想就是复用同样的字符串,假设后面的字符串出现了前面反复,用一个标记取代,能够大大节省压缩数量。

好了,花了1000多字,理了理思路。也起到了复习的效果了。

大话NoSql的更多相关文章

  1. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

  2. 非关系型数据库(NoSql)

    最近了解了一点非关系型数据库,刚刚接触,觉得这是一个很好的方向,对于大数据 方面的处理,非关系型数据库能起到至关重要的地位.这里我主要是整理了一些前辈的经验,仅供参考. 关系型数据库的特点 1.关系型 ...

  3. 关系型数据库与NoSQL数据库

    关系型数据库的优缺点 优点: 可以做事务处理,从而保证了数据的一致性: 可以进行JOIN等多表查询: 由于以SQL标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处). 缺点: 大量数据的写 ...

  4. 几款主流 NoSql 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  5. “NOSQL” 杂谈

    引言: nosql 的兴起和革命,在我看来已经开始逐渐影响到了传统的sql的地位,但是仅仅是影响而已,取代是不太可能的. 正文: 两年前,一个偶然的机会开始接触到 nosql ( mongodb ). ...

  6. 大话keepalive

    大话keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的. tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期 ...

  7. Squirrel: 通用SQL、NoSQL客户端

    安装 配置数据库 配置驱动 配置连接 如果你的工作中,需要使用到多个数据库,又不想在多种客户端之间切换来切换去.那么就需要找一款支持多数据库的客户端工具了.如果你要连接多个关系型数据库,你就可以使用N ...

  8. NoSQL和MongoDB

     NoSQL(NoSQL=Not Only SQL),意即“不仅仅是SQL”.关系数据库关注在关系上,NoSQL关注在存储上. 发展背景 (1)传统关系型数据库遇到了性能瓶颈. 高并发读写(High ...

  9. NoSQL指南

    一.数据库发展 1.早期出现的数据库包括平面文件数据管理系统.分层数据管理系统和网络数据管理系统,分别对应的数据结构是线性表.树和图. 平面文件数据管理系统是使用磁带对数据进行顺序存储的,带来的问题不 ...

随机推荐

  1. 关系型数据库遵循ACID规则

    事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1.A (Atomicity) 原子性原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的 ...

  2. JS nodeType返回类型

    JS nodeType返回类型 前几天朋友正好问道 这个 js的nodeType是个什么概念(做浏览器底层的)正好遇到这篇文章可以向大家解释下 将HTML DOM中几个容易常用的属性做下记录: nod ...

  3. (3)选择元素——(5)为项目列表加样式(Styling list-item levels)

    Let's suppose that we want the top-level items, and only the top-level items, to be arranged horizon ...

  4. Guava源码分析——ServiceManager

    ServiceManager类:      用于监控服务集的管理器,该类提供了诸如startAsync.stopAsync.servicesByState方法来运行.结束和检查服务集,而且,通过监听器 ...

  5. linux hash_map

    在linux下的hash_map hash_map本身以前本身不属于标准库,是后来引入的.有两种可能:一种可能它被放在了stdext名空间里,那么你就要使用using namespace stdext ...

  6. Github错误:Failed to publish this branch

    转自:http://jingpin.jikexueyuan.com/article/34632.html 今天弄github的时候,客户端一直出现error to publish this branc ...

  7. vs2013 JS代码提示

    1.JS提示 在Js文件头部加 /// <reference path="ext-all-dev.js" /> 要求引用的js和本js在同一目录,否则需要全部路径

  8. C#中Dispose、析构函数、close的区别

    一.Close与Dispose这两种方法的区别 调用完了对象的Close方法后,此对象有可能被重新进行使用:而Dispose方法来说,此对象所占有的资源需要被标记为无用了,也就是此对象要被销毁,不能再 ...

  9. 数值的N次方

    问题描述: 实现函数double Power(double base,int exponent),求base的exponent次方.不得使用库函数, 同时不需考虑大数问题. 思路分析: 要是你秒秒钟想 ...

  10. 32位的CPU最多只能支持最大到4GBytes的内存

    和总线宽度相似的,CPU每次能够处理的数据量称为字组大小(word size), 字组大小依据CPU癿设计而有32位与64位.我们现在所称的计算机是32或64位主要是依据这个 CPU解析的字组大小而来 ...