NoSQL泛指非关系型数据库,诸如Cassandra、MongoDB、Neo4J和Riak等。它们主张使用无模式(schemaless)的数据,可以运行在集群环境中。

开源的NoSQL数据库:
Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable, Riak,Tin, Flare, Lightcloud, KiokuDB,Scalaris, Kai, ThruDB, ......

数据分布的两种方式:

1.将不同的数据分片放在多个服务器中,每一个数据子集(subset of data)都专门由一台服务器负责。

2.将数据复制到多个服务器上,每份数据都能在多个节点中找到。

数据库系统中可以选用其中一咱技术,也可以两种都用。

复制技术又有两种形式:

“主从复制”:将其中一个节点当作权威数据源,并负责写入操作;其他从节点都要和主节点保持同步,它们可以负责读取操作。

“对等复制”:任何节点均可写入,节点间相互协调以同步其数据。

“主从复制”减少了更新数据库的冲突几率,但它们会让主节点成为写入操作的瓶颈,而“对等复制”则避免了这一点。

在分布式系统中,如果某些节点收到了更新数据,而另外一些节点尚未收到,那么这种情况就视为“读写冲突”。若写入操作已经传播至所有节点,则此刻数据就具备“最终一致性”。

想取得较好的“一致性",就要用许多节点来执行数据操作,而这又会增大延迟,所以说,经常需要在”一致性“与延迟之间权衡。

在采用”复制“技术的分布式模型中执行数据操作时,无需联系所有副本,只要为足够多的副本所认可,就能保持”强一致性“了。

版本戳可用来检测并必冲突。读取并更新某份数据之后,可检测其版本戳,以确保在读取和写入之间,并没有其他人更新过此数据。

版本戳可以用计数器、GUID、”内容哗然码“、时间戳等方式来实现,也可将上述几种方式组合起来。

把数据库放到集群后,可把运算工作分布到多台计算机中去。此时,仍要试着减少通过网络传输的数据量,把某个节点所需要的数据尽可能多地放在该节点执行。

”CAP定理“断言:”一致性(Consistency)“、”可用性(Availaility)“和”分区耐受性(Partition Tolerance)“三者只可有其二。文档数据库试图用主从式数据复制技术来增强”可用性“。多个节点都保持同一份数据库,即便主节点故障,客户端也依然能获取数据。应用程序代码一般不需要检测主节点是否可用。MongoDB通过”副本集“实现”复制“,以提供较高的”可用性“

NoSQL摘录的更多相关文章

  1. 关系型数据库管理系统(RDBMS)与非关系型数据库(NoSQL)之间的区别

    简介 关系型数据库管理系统(RDBMS)是建立在关系模型基础上的数据库,主要代表有:Microsoft SQL Server,Oracle,MySQL(开源). 非关系型数据库(NoSQL),主要代表 ...

  2. NoSQL and Redis

    转自:http://www.cnblogs.com/fxjwind/archive/2011/12/10/2283344.html 首先谈谈为什么需要NoSQL? 这儿看到一篇blog说的不错http ...

  3. NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务

    业精于勤,荒于嬉:行成于思,毁于随. 一.MongoDB服务下载安装(windows环境安装) 1.进入官网:https://www.mongodb.com/,点击右上角的 Try Free  , 2 ...

  4. NoSql非关系型数据库之MongoDB应用(二):安装MongoDB可视化工具

    业精于勤,荒于嬉:行成于思,毁于随. 我们上次说到NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务 这次我们介绍安装  NoSQL Manager for MongoDB 可 ...

  5. NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用

    业精于勤,荒于嬉:行成于思,毁于随. 我们可以结合相关的IDE做一个简单的增删改查了,实现MongoDB在项目中的初步应用. 前提是安装了MongoDB服务和MongoDB可视化工具,没有安装的可以点 ...

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

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

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

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

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

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

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

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

随机推荐

  1. Codeforces Round #343 (Div. 2) E. Famil Door and Roads lca 树形dp

    E. Famil Door and Roads 题目连接: http://www.codeforces.com/contest/629/problem/E Description Famil Door ...

  2. iOS 带箭头菜单选项弹窗LFPopupMenu

    一.效果图 由于是模拟器缩得比较小,一些细线可能显示不出来,不是bug哈. 二.用法 LFPopupMenuItem *item1 = [LFPopupMenuItem createWithTitle ...

  3. 阿里云ECS使用SSH连接CentOS 6.9经常断线的问题解决:OperationTimedOut

    说明:不一定有效,可以试一下. 设置: vi /etc/ssh/sshd_config #添加或修改以下配置 ClientAliveInterval #每隔多少秒给SSH客户端发送一次信号 Clien ...

  4. 一次完整的HTTP请求的大致过程(转)

    说明:这些理论基本都来自网上,所以不一定准确,但一定是比较好理解的,如果要刨根问底,最好的方式就是看书,且要看权威的书. 一次完整的HTTP请求所经历的7个步骤 HTTP通信机制是在一次完整的HTTP ...

  5. .net设置中GridView自适应列宽

    有一个项目只有30分钟开发时间,速成,使用了古老的.net gridview. 但需要列宽自适应好看些. 于是琢磨了,实现思路如下. 先看下大致效果(很粗暴没有优化) 代码如下: protected ...

  6. [漏洞检测]Proxpy Web Scan设计与实现(未完待续)

    Proxpy Web Scan设计与实现 1.简介:          Proxpy Web Scan是基于开源的python漏洞扫描框架wapiti改造的web漏洞扫描器,其主要解决以下几个问题而生 ...

  7. nor flash 和nand flash 的区别

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...

  8. Index column size too large. The maximum column size is 767 bytes.

    mysql建表时报Index column size too large. The maximum column size is 767 bytes.解决办法:在建表语句的后面加入:ENGINE=In ...

  9. Unity3d通用工具类之解压缩文件

    今天,我们来写写c#是如何通过代码解压缩文件的. 在游戏的项目中呢,常常我们需要运用到解压缩的技术.比如,当游戏需要更新的时候,我们会从服务器中下载更新的压缩文件包. 这时候我们就需要解压文件,然后覆 ...

  10. 向PE文件植入后门代码技术讨论

    写在前面的话 这篇文章将介绍使用codecaves对PE文件植入后门代码.有几个很好的工具可以帮到你了.比如BackdoorFactory和Shelter将完成相同的工作,甚至绕过一些静态分析几个防病 ...