前言

2016年伊始,开始研究NoSql.看了couchdb,cloudant,cassandra,redis.却一直没有看过排行榜第一的mongo,实属不该。近期会花时间研究下mongo。本文是初识mongo的体验。有错误之处,还望指正。

Mongo VS cassandra

目前NoSql 排行版前三是Mongo,Cassandra,Redis.Redis 特点明确,key-value 形式,数据不持久化主要用来做缓存。所以这里主要比较Mongo,Cassandra

  1. license

    mongo 是AGPLV3,mongo driver 才是apache.AGPLV3不是完全开源的,

    cassandra 是apache,无压力

  2. 性能

    现在这世道,是个数据库都说自己是高性能。个人使用情况来看。cassandra写入性能要好很多,原因在于他只写commit log 和memtable.线性扩展Cassandra也好很多。读操作没有特别区别。

    但是不基于业务来谈性能没什么多大意义。因为cassandra为了高效存储数据,对query的支持不是很友好,所以通常为了满足query,你可能需要建立index,视图,或者新表。这些开销会影响到写性能。

  3. 数据模型

    mongo 支持复杂的数据模型,数据类型更加的丰富,还可以嵌套文档。

    cassandra 相对要弱点。

  4. 集群架构

    mongo 的sharded 集群需要三种角色,query router,config server,data store replicat set.当有primary节点down掉,需要重新选举primary node.所以会有down time.另外集群角色多,部署起来相对麻烦,但个人觉得这不是什么多大问题,毕竟没有人需要经常去部署。

    cassandra所有节点都一样,replication_factor 为3的,write_consistency 为quorum时,可支持1个node down。对于整个cluster来说,是zero down time.没有任何影响。

  5. multi active-active 数据中心

    mongo 有主从节点,只有主节点能够写。所以没法做到active-active.如果用户从一个数据中心到另外一个数据中心了,没法写到新的数据中心,必须要写到最初的数据中心。

    cassandra 没问题,server端可以配置DC-Aware 模式,就可以根据server来路由到新的数据中心

  6. 与关系型数据库对比

    mongo 更像关系型数据库,虽然mongo是基于document,没有了SQL语句,而cassandra却有CQL.以及mongo 没有Schema,而cassandra却有。但是从设计schema,和使用情况来说。mongo不需要太多的思想转变,数据既可以是规范化也可以有反规范化。但是cassandra则完全反规范化。

Mongo 物理架构

复制集

一个主节点,两个secondary 节点。主节点写,secondary 节点可以分发读。三个节点的数据完全一样。

sharded cluster

复制集这种不分片的mongo 架构满足不了数据量大的情况。

三种角色

  • query router

    查询路由,server 发请求到router,然后分发给shard
  • config servers

    存储集群的元数据和配置信息,不存储数据
  • shard

    存储分片数据

注意query router 是mongos instance,而config server 和 shard中节点都是mongod instance.两者不一样。mongos 启动的时候需要连接config server,并配置各个shard信息。

Mongo DB 初识的更多相关文章

  1. mongo DB for C#

    (1)Download the MongoDB C#驱动. http://www.nuget.org/packages/mongocsharpdriver/. (2) Add Reference to ...

  2. Mongo DB 2.6 需要知道的一些自身限定

    在现实的世界中,任何事情都有两面性,在程序的世界中,亦然! 我们不论是在使用一门新的语言,还是一门新的技术,在了解它有多么的让人兴奋,让人轻松,多么的优秀之余,还是很有必要了解一些他的局限性,方便你在 ...

  3. Mongo DB Study: first face with mongo DB

    Mongo DB Study: first face with mongo DB 1.  study methods: 1.  Translate: I am the mongo DB organiz ...

  4. mongo db 分享 ppt

    在公司内部的mongo db的ppt.初步进阶 http://files.cnblogs.com/files/yuhan-TB/mongoDB.pptx

  5. Mongo DB 安装-及分布式集群部署(初稿)

    一.安装步骤, 1, 下载最新的Mongo DB数据库:http://www.mongodb.org/downloads?_ga=1.44426535.2020731121.1421844747\ 下 ...

  6. mongo db 使用方法

    1 下载 mogodb http://www.mongodb.org/display/DOCS/Downloads 2 打开服务 我安装在e盘下了 可以指定数据文件位置 到 E:\mongoDB\mo ...

  7. mysql 和 mongo db 语法对比

    本文描述了MySQL中的常用SQL语句在MongoDB中的写法,如果你长期使用MySQL而对MongoDB跃跃欲试,这篇简单的文章可以帮助你更快的进入角色.查询:MySQL:SELECT * FROM ...

  8. Mongo DB命令简介

    引言   最近在学习MongoDB 总结了一些命令及常用的东西做整理   常用目录文件介绍 mongod 数据库部署命令 mongo 连接mongodb数据库而使用的命令 mongoimport 导入 ...

  9. Java从入门到精通——数据库篇Mongo DB GridFS文件系统

    一.概述    GridFS是MongoDB的一种存储机制,用来存储大型二进制文件. 优点: 1.使用GridFS能够简化你的栈.如果已经在使用MongoDB,那么可以使用GridFS来代替独立的文件 ...

随机推荐

  1. ProxySQL 读写分离实践

    前言 ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.具有以下特性: 连接池,而且是 multiplexing 主机和用户的最大连接数限制 自动下线后端DB 延迟超过阀值 ping ...

  2. @OnetoOne @OnetoMany @ManyToOne(2)

    在班主任(id,name,bjid) 班级(id name) 学生(id name bjid)的 关系中 班主任一对一关联班级 班级一对多关联学生 @OnetoOne @joinColumn(bjid ...

  3. 手写java虚拟机(一)——搭建环境

    毕业设计打算做一个java虚拟机,首先要对java虚拟机有一个简单的了解(jvm).目前市面上有众多的jvm,如sun公司的HotSpot VM.Classic VM,IBM公司的J9 VM等等,这里 ...

  4. svg 五花 元辅音 助读器

    如图,使用svg 创建5个圆,中间 辅音字母,外圈 元音字母 以及 示例单词. 可以使用  提交 按钮 进行更新

  5. [LeetCode] Exclusive Time of Functions 函数的独家时间

    Given the running logs of n functions that are executed in a nonpreemptive single threaded CPU, find ...

  6. MySQL InnoDB 索引原理

    本文由  网易云发布. 作者:范鹏程,网易考拉海购 InnoDB是 MySQL最常用的存储引擎,了解InnoDB存储引擎的索引对于日常工作有很大的益处,索引的存在便是为了加速数据库行记录的检索.以下是 ...

  7. WebApi的安全性及其解决方案

    一.前言   WebApi的小白想要了解一些关于WebApi安全性相关的问题,本篇文章是整理一些关于WebApi安全.权限认证的文章. 二.内容正文  2.1 不进行验证  客户端调用:http:// ...

  8. POJ2454 Jersey Politics

    Description In the newest census of Jersey Cows and Holstein Cows, Wisconsin cows have earned three ...

  9. 17.10.31&11.01

    10.31模拟考试 Prob.1(AC)裸的矩阵幂 Prob.2(WA)(类似括号匹配求合法方案数) 卡特兰数的一个模型运用.可以推出一个式子(推导方法一个erge讲的,一个骚猪讲的) Prob.3( ...

  10. [矩形并-扫描线-线段树]Picture

    最近在补数学和几何,没啥好写的,因为已经决定每天至少写一篇了,今天随便拿个题水水. 题目大意:给你N个边平行于坐标轴的矩形,求它们并的周长.(N<=5000) 思路:这个数据范围瞎暴力就过了,但 ...