NoSQL摘录
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摘录的更多相关文章
- 关系型数据库管理系统(RDBMS)与非关系型数据库(NoSQL)之间的区别
简介 关系型数据库管理系统(RDBMS)是建立在关系模型基础上的数据库,主要代表有:Microsoft SQL Server,Oracle,MySQL(开源). 非关系型数据库(NoSQL),主要代表 ...
- NoSQL and Redis
转自:http://www.cnblogs.com/fxjwind/archive/2011/12/10/2283344.html 首先谈谈为什么需要NoSQL? 这儿看到一篇blog说的不错http ...
- NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务
业精于勤,荒于嬉:行成于思,毁于随. 一.MongoDB服务下载安装(windows环境安装) 1.进入官网:https://www.mongodb.com/,点击右上角的 Try Free , 2 ...
- NoSql非关系型数据库之MongoDB应用(二):安装MongoDB可视化工具
业精于勤,荒于嬉:行成于思,毁于随. 我们上次说到NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务 这次我们介绍安装 NoSQL Manager for MongoDB 可 ...
- NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用
业精于勤,荒于嬉:行成于思,毁于随. 我们可以结合相关的IDE做一个简单的增删改查了,实现MongoDB在项目中的初步应用. 前提是安装了MongoDB服务和MongoDB可视化工具,没有安装的可以点 ...
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
- 非关系型数据库(NoSql)
最近了解了一点非关系型数据库,刚刚接触,觉得这是一个很好的方向,对于大数据 方面的处理,非关系型数据库能起到至关重要的地位.这里我主要是整理了一些前辈的经验,仅供参考. 关系型数据库的特点 1.关系型 ...
- 关系型数据库与NoSQL数据库
关系型数据库的优缺点 优点: 可以做事务处理,从而保证了数据的一致性: 可以进行JOIN等多表查询: 由于以SQL标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处). 缺点: 大量数据的写 ...
- 几款主流 NoSql 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...
随机推荐
- ob_flush()和flush()和ob_implicit_flush(true)
http://www.jb51.net/article/16215.htm 第一: “ob_flush()和flush()的区别.前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释 ...
- python使用sqlite示例
SQLite是一种嵌入式数据库,它的数据库就是一个文件.Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用. 操作关系数据库,首先需要连接到数据库 ...
- JavaScript 开发的45个技巧
JavaScript是一个绝冠全球的编程语言,可用于Web开发.移动应用开发(PhoneGap.Appcelerator).服务器端开发(Node.js和Wakanda)等等.JavaScript还是 ...
- Linux命令之sync - 强制将内存中的文件缓冲内容写到磁盘
转:http://www.linuxso.com/command/sync.html sync命令 linux同步数据命令 格式: sync 用途:更新 i-node 表,并将缓冲文件写到硬盘中. 功 ...
- java使用HttpClient 发送get、pot请求
package eidolon.messageback.PostUtil; import java.io.BufferedReader; import java.io.IOException; imp ...
- 【maven】ecplise新建maven项目 报错Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin
在ecplise上新建maven项目 报错: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resourc ...
- Oracle session active 和 inactive 状态 说明
Oracle session active 和 inactive 状态 说明 原创 2011年06月12日 13:08:00 标签: session / oracle / database / ser ...
- OpenShift应用镜像构建(1) S2I tomcat 镜像定制
参考并感谢https://www.jianshu.com/p/fd3e62263046 在对接项目制作应用镜像的过程中,经常发现避免不了的是需要写Dockerfile,(当然另外一种方式是直接run一 ...
- ashx 下载文件
ashx后台 byte[] file =GetFileByte(""); Response.ContentType = "application/octet-stream ...
- 过滤器chain.doFilter(request,response)的含义
过滤器的生命周期一般都要经过下面三个阶段: 初始化: 当容器第一次加载该过滤器时,init() 方法将被调用.该类在这个方法中包含了一个指向 Filter Config 对象的引用.我们的过滤器实际上 ...