详解NoSQL数据库使⽤实例
⼀、NoSQL基础知识
redis是nosql数据库吗1.关于在"NoSQL"⼀词,实际上是⼀个叫Racker的同事创造的,当约翰埃⽂斯埃⾥克要组织⼀次活动来讨论开源的分布式数据库。这个名称和概念都由此⽽来。
有些⼈反对NoSQL术语,因为它听起来像我们定义⾃⼰是什么.在⼀定程度,但长期仍然是有价值的,因为当⼀个关系数据库是唯⼀的⼯具,你知道,每⼀个问题,看起来像⼀个⼤拇指。 NoSQL是让⼈们知道有其他选择哪⾥。但我们并不反对关系数据库,因为当这确实是⼯作的最佳⼯具⼀个与NoSQL名称真正关注的是,它是⼀个很⼤的帐篷,有⾮常不同的设计空间。如果这不是在讨论清楚的,它在各种产品混乱的结果。因此,我要建议沿着三个轴的思考很多数据库选项:可扩展性,数据和查询模型和持久性的设计。
前所未有的数据量正推动企业关注传统的关系数据库技术,已服务了30多年良好替代品。总的来说,这些替代品已被称作"NoSQL数据库。
最根本的问题是关系数据库不能处理很多现代的⼯作量。有三个具体的问题:扩⼤向像Digg新闻评论⽹站的(3TB绿⾊徽章)或Facebook 的(50TB收件箱中的搜索)或EBay(整体2PB),每服务器性能和严格的架构设计。
备注:(Digg概念源⾃美国Digg公司。它完全是依靠真实的⽹民的⾃⼰⼒量。⽹站上所有内容都是由⽹民⾃⼰发布,并且内容的位置也是由⽹民⾃⼰来决定。当内容的顶数,评论等达到⼀定的数字,这些内容就有可能从众多的信息中脱颖⽽出。
我最近写了邮件给卡桑德拉,关于⾮关系型数据库的资源,我们承诺后,还有其他⾮关系型数据库在⼯作,我们称之为"NoSQL运动。 2.⼀个简单的NoSQL实例我选择了⼀些作为例⼦NoSQL数据库。这不是⼀个详尽的清单,但讨论的概念是对于衡量其他⼈也⾄关重要。 可伸缩性缩放读取与复制容易,当我们对在这⽅⾯缩放时,我们的意思写了缩放到多台机器⾃动分区的数据。我们呼吁制度不健全,这种"分布式数据库。"这其中包括Cassandra,HBase,Riak,Scalaris,Voldemort,等等。如果你写卷或数据容量超过⼀台机器可处理,那么这些是你的唯⼀选择,如果你不想⼿动分区管理。
有两件事情看在分布式数据库:1)⽀持多种数据中⼼和2)能够添加新的机器现场集的应⽤程序的透明。
⼆、NoSQL数据库使⽤1. NoSQL数据和查询模型⾮分布式NoSQL数据库包括CouchDB,MongoDB,Neo4j,Redis,和Tokyo Cabinet。这些可以作为分布式系统持久层; MongoDB提供有限的共享⽀持,做了单独的休息室为CouchDB项⽬,和Tokyo Cabinet可作为Voldemort存储引擎使⽤。
数据和查询模型在NoSQL⾥有很多不同的数据模型和数据库的查询⼀些重点:
该columnfamily模型Cassandra共享和HBase的是由⾕歌的Bigtable⽂件,第2节描述的启发。 (Cassandra下降,历史版本,并添加超级列。)在这两个系统,你必须像你⾏和列习以为常,但稀疏⾏:每⼀⾏可以有许多或尽可能少列的需要,以及列不必须提前定义。
键/值模型是最简单和最容易实现的,但效率低,只有当你在查询或更新的值的⼀部分感兴趣。这也是难以执⾏的分布式圈顶更复杂的结构/价值。
⽂档数据库基本上是下⼀阶段重点/值,允许嵌套的值与每个键关联。⽂件数据库⽀持查询的效率⽐每次返回了整个BLOB更简单。
Neo4J有⼀个真正独特的数据模型,对象存储在图和节点和边的关系。对于查询适合这个模型(例如,分层数据),它们可以是1000倍速度⽐替代品。
Scalaris是独特的,提供跨多个键分布式事务。 (讨论与贸易之间的⼀致性和可⽤性权衡超出了这个职位的范围,但另⼀个⽅⾯就是要牢记在评价分布式系统。
持久性设计通过持续的设计我的意思是,"如何在内部存储的数据?" 持久性模型告诉我们很多这些数据库能够善于什么样的⼯作量在内存数据库是⾮常,⾮常快的(Redis达到每秒超过100,000操作⼀台计算机上),但不能与数据集的⼯作,超出可⽤的RAM。耐久性(保留数据,即使服务器崩溃或断电)也将
是⼀个问题的数据量,可以预期损失之间的冲(复制数据到磁盘)可能⾮常⼤。 Scalaris,其他内存数据库,我们的名单上,意向处理与复制耐久性问题,但由于它不⽀持多个数据中⼼的数据将仍然容易受到停电的事情⼀样。
Memtables和SSTables缓存在内存中写⼊(1"memtable")后,以书⾯追加只承诺为耐久性⽇志。当写够已被接受的memtable排序并写⼊到磁盘上的所有⼀次作为"sstable。"这提供近内存中的表现,因为没有涉及要求,同时避免了纯粹的耐久性问题,在内存的⽅法。 (这是详细描述在第5.3和先前提及的5.4 Bigtable的⽂件,以及在该⽇志结构合并树。
B-树已被⽤于从数据库中实际上是时间的起点。索引他们提供强⼤的⽀持,但表现⽋佳的旋转盘(这仍然是迄今为⽌最具有成本效益,因为多)要求读或写什么⼯作。
⼀个有趣的变体是CouchDB的追加,只有B -树,它避免了管理费⽤的⽬的在限制CouchDB⼀写⼀时间成本结论该NoSQL运动在2009年爆炸地为越来越多的企业全⼒对付⼤量数据。在Rackspace云⾼兴地发挥了NoSQL运动的早期作⽤,并继续投⼊资源,Cassandra像NoSQL⽀持事件。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论