zoukankan      html  css  js  c++  java
  • MongoDB 介绍

    关系型数据库:

    根据关系模型(“一对一”,“一对多”,“多对多”等,关系模型是二维表的模型),关系型数据库有oracle,mysql ,sql server 

    非关系型数据库:

    根据非关系型模型(键值对:redis,memcache;列模式:hbase,文档模式:MongoDB)

    比较:

    • 查询速度:非关系性数据库快于关系型
    • 安全:关系型安全
    • 存储数据格式:关系型数据库是二维表,所以优于非关系型数据库

    MongoDB介绍:

    是文档型数据库:编码方式:(json,xml)

    1. 它是一个强大,灵活且易于扩展的通用性数据库,使用文档是一组键值对(key-value)
    2. 拥有这关系型数据库的关键能力:表达丰富的查询和辅助索引,强有一致性,可扩展性。
    3. NoSQL数据库技术:灵活的数据模型(与传统关系型数据库相比,现代的Nosql数据库提供了更为灵活的数据模型,可以方便的存储任何结构的数据,并且允许不停机的情况下修改Schema)、可扩展性(Nosql数据库更专注与扩展性,都有某种形式的分片或分区,这就使得Nosql可以再商用硬件上水平扩展,获得更高的吞吐量和低延时)和高性能部署(Nosql设计用于为持续高可用系统,为用户提供高质量的体验)

    为什么出现:

    MongoDB是属于非关系型数据库的一种,拥有一致性,可扩展型,也拥有固定的文件格式和编码方式的应用

     MongoDB的存储引擎

    存储引擎:负责处理什么数据结构存储数据2

    在MongoDB复制集,可以多种存储并存,可以满足应用更为复杂的需求。

    例如:In-memory存储引擎进行低延时的操作,同时使用基于磁盘的存储引擎完成持久化

    Mongodb的架构

    一主多从:官方建议至少3个节点组成副本集

    Mongodb副本集

    1、提供数据保护、负载均衡和容灾能力

    2、节点心跳的检查,以检测和维护副本集

    3、通过选举的机制完成故障切换

     

    mongodb集群架构组成

    1、路由服务

    • 路由到对应shard服务器上的mongo
    • 所有的请求都要通过mongos进行协调
    • 去除应用程序的路由选择
    • 可以理解成一个请求分发中心

    如果路由服务发生故障怎么处理?

    如果路由服务发生故障,会出现单点故障,通常要部署多个mongos请求服务

    2、分片服务

    分片是将一个副本集数据分别存储在不同的shard节点上(通过shard keys来选择不同的shard)

    分片的优势:

    • 实现负载均衡
    • 提高访问效率
    • 增强扩展性

    3、配置服务

    • 存储所有数据库元信息(路由、分片)的配置
    • Mongos没有存储分配和路由信息
    • 每次启动mongos都会读取配置服务

    如果配置服务发生故障怎么处理?

    如果配置服务发生故障,会导致元信息丢失,通常要部署多个配置服务器

    Mongodb水平扩展

    横向水平扩展从服务

  • 相关阅读:
    概率论中几个入门公式
    记一道贝叶斯公式的裸题
    BZOJ3585: mex(主席树)
    利用MingW检验程序运行内存
    清北集训Day3T1(转换)
    万能pb_ds头文件—bits/extc++.h
    清北集训Day1T3 LYK loves jumping(期望DP)
    洛谷P1962 斐波那契数列(矩阵快速幂)
    namespace用法
    BZOJ4868: [Shoi2017]期末考试
  • 原文地址:https://www.cnblogs.com/wendyluo/p/13435664.html
Copyright © 2011-2022 走看看