前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongDB使用与原理看这篇就够了

MongDB使用与原理看这篇就够了

作者头像
JavaEdge
修改2022-11-18 23:11:39
4440
修改2022-11-18 23:11:39
举报
文章被收录于专栏:JavaEdgeJavaEdge

1 什么是MongoDB

memory 内存引擎,NoSQL最大特点:

  • 默认支持分布式(内置分布式解决方案)
  • 高性能,高可用性和可伸缩性

NoSQL的MongoDB是最像关系型数据库的非关系型数据库。

2 MongoDB应用场景

2.1 适用范围

  • 网站实时数据。如日志、Timeline、用户行为(代替方案:用日志)
  • 数据缓存:缓存的数据,一定是临时的
  • 大尺寸、低价值数据存储:搜索引擎的图片文件、视频文件(结构化),一份存磁盘、一份存MongoDB
  • 高伸缩性场景:机器可任意增减
  • 对象或JSON数据存储:完全可选择用Redis
  • 不规则日志:ELK, Log4J INFO,ERROR,WARN,DEBUG
  • Pattern,用正则去解析字符串,不止一个正则,每一种日志格式都要编写一个正则去匹配。既然用正则麻烦,为什么还用ELK存储日志
  • 规则日志:MongoDB,结构化的整理,用户行为日志 operationTime creator type target
  • Timline,调用链路 invoker Time targetMethod args returnVal throws
  • 持续增量(id + UpdateTime)
  • 文件存储:GirdFS(文件存储系统)

不适合Reids:数据需要持久性的而且有一定依赖性

适合Redis:数据会设置时效、分布式锁、用户登录token、数据库缓存中间件

用户手机注册验证码存取适合用MongoDB吗?还是Redis? 建议用Seesion,用Redis过时时间,不推荐用MongoDB。

2.2 不适用范围

  • 高度事务性系统:如金融系统的核心数据,高机密的用户数据(只能选择传统关系型数据库)
  • 传统的商业智能应用:结构化查询要求非常高,经常做关联查询统计(如果都是单表查询,用Java程序实现关联)

MongoDB 4.0 支持事务操作(分布式事务的一种解决方案)。

微观的维度:

chunk(块)-->shard(片) --> Replica Set(副本) --> Data(数据)

宏观维度(你能看到的):

Field(字段) --> Document(文档) --> Collection(集合) --> DataBase(数据库)。

3 MongoDB V.S HBase

MongoDB,为一个结构化的缓存,由于设计原理不同,数据量是一定的瓶颈的。

HBase ,基于列簇扩展性,高可用程度会更加灵活,数量级和MongoDB也是有很大差异的。

HBase 通常会跟大数据联系在一起

MongoDB 顶多算是一个日志数据库,文件存储系统。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-08-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 什么是MongoDB
  • 2 MongoDB应用场景
    • 2.1 适用范围
      • 2.2 不适用范围
      • 3 MongoDB V.S HBase
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档