MongoDB和Elasticsearch的对比
适用场景
两者其实在很多使用场景上有重合之处, 是可以互相替代, 比如日志收集

但是某些方面两者又各有特色,比如: 如果打算使用一个文档型的业务数据库, 那最好还是选mongodb, 如果你有要求复杂查询又并发性能要求高的场景,类似搜索服务,那最好的选择是elasticsearch

除此之外:

MongoDB有多个存储引擎可以选择, 而且MongoDB不仅看重数据的分析, 对数据的管理同样看重, 总的来说MongoDB更倾向于数据的存储和管理, 可以作为数据源对外提供, 未来说不定还会有支持join和支持倒排索引的mongo引擎出现

Elasticsearch则有很多插件可以使用, 相对来讲Elasticsearch更倾向于数据的查询, 一般情况下elasticsearch仅作为数据检索服务和数据分析平台, 不直接作为源数据管理者

MongoDB适合
对服务可用性和一致性有高要求
无schema的数据存储 + 需要索引数据
高读写性能要求, 数据使用场景简单的海量数据场景
有热点数据, 有数据分片需求的数据存储
日志, html, 爬虫数据等半结构化或图片,视频等非结构化数据的存储
有js使用经验的人员(MongoDB内置操作语言为js)
Elasticsearch适合
已经有其他系统负责数据管理
对复杂场景下的查询需求,对查询性能有要求, 对写入及时性要求不高的场景
监控信息/日志信息检索
小团队但是有多语言服务,es拥有restful接口,用起来最方便
总结
MongoDB和Elasticsearch都是我比较喜欢的存储产品

两者的功能特性也存在很多重合的地方, 其实现在很多数据库产品都在互相借(chao)鉴(xi), 功能和特性都在逐渐变得相似, 这也是未来很多存储产品的发展趋势, 大家都希望自己能覆盖尽量多的场景和用户群体

很多产品总是在不断的从没有->有->功能丰富,但是功能丰富一定是做了很多的妥协, 于是又有了 功能众多的单体服务->多个功能单一的子服务 方向的转变,就像三国里面说的 “天下大势, 分久必合合久必分”.

现在NoSQL数据库产品就在这个路上, NoSQL归根到底都是 RDBMS的某个方面的妥协, 现在各种NoSQL 也都在加入对经典SQL和传统RDBMS的 join, 事务的支持, 但是我相信等到两者区别足够小的时候, 一定会有放弃了大而全, 而专注于某一场景的新的存储产品出现,到时候搞不好又是一波新的Nosql潮流

原文链接:https://blog.csdn.net/qq_33449307/article/details/120255030
详情查看博客:MongoDB和Elasticsearch的对比

总结
对数据的读写要求极高,并数据规模不大,也不需要长期存储,选redis;

数据规模较大,数据的读性能要求很高,数据表的结构需要经常变,有时还需要做一些聚合查询,选MongoDB;

需要构造一个搜索引擎或者你想搞一个看着高大上的数据可视化平台,并且你的数据有一定的分析价值或者你的老板是土豪,选ElasticSearch;

需要存储海量数据,不知道数据规模将来会增长多么大,那么选HBase。
参考博客:MongoDB、ES、Redis、HBase四种数据库的简单区别

MongoDB、ES、Redis、HBase四种数据库的简单区别相关推荐

  1. 大数据时代MongoDB、ES、Redis、HBase这四种数据库你应该懂

    数据库对互联网开发的重要性就不必多说了.作为大数据和AI时代的互联网er,如果你还是只懂MySQL,那你可就火星大发了.下面给大家总结下每个互联网er都必须懂的几种数据库产品. MongoDB Mon ...

  2. Java大数据:大数据开发必须掌握的四种数据库

    大数据的典型特征,包括数据量大.数据类型多.价值密度低等,而具备这样特征的数据,在进入到存储阶段时,就需要根据数据类型及场景,来匹配适当的数据存储解决方案.今天我们来讲讲Java大数据开发当中,必须掌 ...

  3. redis的四种模式

    一:什么是redis Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value ...

  4. 四种DCOM错误的区别,0x80080005 0x800706be 0x80010105 0x

    四种DCOM错误的区别 Differences between the following DCOM error 0x80080005 0x800706be 0x80010105 0x800706ba ...

  5. C++的四种cast操作符的区别--类型转换

    C++的四种cast操作符的区别 发信站: 水木社区 (Thu Jan 26 21:15:16 2006), 站内 声明 by NetMD: 并非我的原创,来自互联网,且是两篇帖子的合集,个人觉得这样 ...

  6. 【整理】Python中的re.search和re.findall之间的区别和联系 + re.finall中带命名的组,不带命名的组,非捕获的组,没有分组四种类型之间的区别

    之前自己曾被搞晕过很多次. 后来使用这些函数次数多了之后,终于比较清楚的弄懂了两者之间的区别和关系了. 尤其是一些细节方面的注意事项了. 在看下面的总结和代码之前,请先确保你对如下基本概念已经有所了解 ...

  7. Cortex-M0 (2)---Cortex-M的M0,M+,M3,M4,M7几种内核的简单区别

    Cortex-M的M0,M+,M3,M4,M7几种内核的简单区别 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wuyuzun/article/de ...

  8. 一文读懂Redis的四种模式,单机、主从、哨兵、集群(*)

    前言: redis有多种模式:单机模式.主从模式.哨兵模式.集群模式 1.单机模式 安装一个redis,启动起来,业务调用即可. 单机在很多场景也是有使用的,例如在一个并非必须保证高可用的情况下. 优 ...

  9. 常见的四种数据库设计模式

    1.主扩展模式: 一般应用于提取不同类型的对象的共同特征.比如学校当中,对于上课而言分为 老师和学生,但对于食堂大妈或者门卫大爷而言,就看你是不是校内人员.这是一种包含 关系.即校内人员包括 学生.老 ...

最新文章

  1. 学习微信小程序之css14浮动的特性
  2. (CZ深入浅出Java基础)线程笔记
  3. Java双向链表快速排序_双向链表的插入,删除,以及链表的快速排序
  4. java list的作用_集合框架(List集合的特有功能概述和测试)
  5. linux服务器内存占用太高-释放内存
  6. part-17 从开环增益曲线谈到运放稳定性
  7. Windows 7 登录界面背景图片定制
  8. 常见的几种web api 接口加密签名模式
  9. 动态平衡网格交易_网格交易 套利:期货经典书籍
  10. Kubernetes Downward API的介绍及使用
  11. Kruskal算法求最小生成树
  12. 图像识别开源_看看开源图像识别技术
  13. window证书管理
  14. 算法 | 03 字符串(KMP)
  15. java 多态的应用——多态数组和多态参数详解
  16. 生死狙击2等待服务器响应,《生死狙击2》劫掠测试结束:热爱不止 来日再战!...
  17. 论文pytorch-CycleGAN-and-pix2pix
  18. 单元格下拉全选快捷键_【excel下拉全选快捷键】Excel中全选是Ctrl A,那么反选呢?...
  19. 我手写了个SLAM算法!
  20. 友盟+的数据智能生意经:如何从DI向AI进阶?

热门文章

  1. android实现地图api公交线路查询,android实现查询公交车还有几站的功能
  2. 半路出家如何玩转编程
  3. 2022年区块链安全领域8成以上损失集中在DeFi和跨链桥
  4. 小程序 - 颜值大师
  5. 日常生活中常用的英语
  6. 科学家制造迄今最低温度新纪录
  7. 常见网络营销方法总结
  8. oracle导出到hive,从Oracle导出数据并导入到Hive
  9. 计算机调剂到上科大,科软是如何用5年时间从招生靠调剂到406名400+大神的?
  10. ChatGPT技术报告