`
chengyue2007
  • 浏览: 1490053 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

详解NoSQL数据库使用实例

阅读更多

一、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支持事件。

分享到:
评论

相关推荐

    主流NOSQL数据库之MongoDB快速入门.docx

    - **定义**:MongoDB是一款基于分布式文件存储的非关系型数据库(NoSQL),由C++语言开发,设计初衷是为了满足Web应用程序对高性能及可扩展性的需求。 - **特性**:具备高度的灵活性、易于水平扩展、丰富的查询语言...

    Redis使用教程,详解

    Redis 使用教程详解 Redis 是一个高性能的 NoSQL 键值存储数据库,广泛应用于缓存、任务列表、网站访问统计数据、过期处理、应用排行榜、分布式集群架构中的 session 分离等领域。下面是 Redis 的详细使用教程。 ...

    MongoDB详解加实例

    MongoDB是一款高性能、开源、无模式的文档型数据库,它属于NoSQL数据库的一种。MongoDB的设计理念是为了解决大规模数据存储问题,尤其适用于处理大量非结构化或半结构化数据。在本文中,我们将深入探讨MongoDB的基础...

    NoSQLBooster for MongoDB

    2. **非关系型数据库(NoSQL)**:NoSQL数据库与传统的SQL关系型数据库不同,它不依赖固定的表结构,适合大数据和实时应用程序。MongoDB作为NoSQL数据库的一种,因其分布式架构和文档模型,常用于内容管理系统、...

    2017年上半年数据库系统工程师考试真题案例分析和答案(上午+下午)

    8. NoSQL数据库:NoSQL数据库的分类(键值存储、列族、文档型、图形数据库),其优势与应用场景,以及与传统SQL数据库的区别。 9. 实例分析与问题解决:实际案例中可能遇到的问题,如性能瓶颈分析、故障诊断、数据...

    详解MongoDB数据库基础操作及实例

    MongoDB是一种流行的开源、文档型的NoSQL数据库系统,它以其灵活性、高性能和易于扩展性在处理大量非结构化和半结构化数据时受到了广泛欢迎。本文将详细讲解MongoDB数据库的基础操作,并通过实例来帮助理解和应用...

    MongoDB数据库基本操作详解:从入门到高可用集群搭建

    适合人群:对 NoSQL 数据库感兴趣的 IT 技术人员,尤其适合刚开始接触 MongoDB 或需要进一步深入了解其特性的开发者。 使用场景及目标:无论是作为新手学习 MongoDB 基本操作,还是为了提升个人技术水平,了解如何...

    The Definitive Guide to MongoDB

    ### MongoDB:云端与桌面计算的NoSQL数据库终极指南 #### 关键知识点概览: 1. **MongoDB简介** - MongoDB的基本概念和发展历程。 - MongoDB作为一种文档型NoSQL数据库的特点。 2. **NoSQL数据库概述** - ...

    nosql实验七 MongoDB的管理.docx

    MongoDB 是一种流行的 NoSQL 数据库,它提供了灵活的数据存储和高性能的数据处理能力。下面是 MongoDB 管理的详细知识点: 启动和停止 MongoDB 要启动 MongoDB,使用 systemctl 命令:`systemctl start mongod....

    Redis学习手册

    综上所述,Redis作为一种高性能的NoSQL数据库,不仅易于使用,而且功能强大,非常适合需要快速读写和大量缓存的应用场景。尽管存在一些限制,但它仍然是现代应用程序架构中的一个重要组成部分。

    大数据领域的数据库有哪些分类

    - **例子**: MySQL、Oracle、SQL Server、MPP数据库等都是典型的关系型数据库实例。 **2. NoSQL数据库** - **特点**: NoSQL(Not Only SQL)数据库是一种非关系型数据库,与传统的RDBMS相比,NoSQL数据库不依赖于...

    分布式数据库

    - 应用程序通过中间件连接多个数据库实例。 - 中间件负责SQL解析、路由、执行以及数据节点的健康检查等任务。 - 这种架构不仅提高了系统的可扩展性和可用性,还降低了单点故障的风险。 #### 五、拆分库表策略 -...

    MongoDB 数据库基本操作与功能详解

    使用 `show dbs` 命令可以查看当前 MongoDB 实例中所有已存在的数据库列表。 ```javascript show dbs; ``` - **切换数据库** 使用 `use` 命令可以切换到指定的数据库。 ```javascript use anotherDB; ``` ...

    MongoDB数据库技术入门教程详解

    使用场景及目标:本文的目标是为了更好地理解和掌握MongoDB这一流行的非结构化文档式数据库系统的工作机制,为后续深入开发打下良好扎实的知识背景。 其他说明:本文通过实例讲解与理论相结合的方式加深了用户对...

    数据库详解 SQL

    2. **安装与初始化**:下载并安装适合的DBMS软件,执行初始化脚本以创建数据库实例。 3. **配置参数**:调整内存分配、连接数限制、日志文件位置等参数,确保数据库运行高效且稳定。 4. **安全设置**:设置用户权限...

    java NoSql Cassandra hector

    Cassandra,作为NoSQL数据库家族中的重要一员,尤其在大规模分布式存储系统中表现出色。本文将深入探讨如何使用Java通过Hector库来操作Cassandra数据库。 Cassandra概述: Cassandra是由Facebook开发,后来贡献给...

    Springboot整合MongoDB进行CRUD操作的两种方式(实例代码详解)

    Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库。两者在实际应用中使用率极高。本文将对Springboot整合MongoDB进行CRUD操作的两种方式进行详细介绍。 简介 Springboot是最简单的使用...

    Mongodb数据库

    3. Route Server:mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。 MongoDB 集群架构示例 在本例中,我们将建立一个简单的 MongoDB 集群架构,包括三个 Shard ...

Global site tag (gtag.js) - Google Analytics