>>分享SPSS,Hadoop等大数据处理技术,以及分布式架构以及集群系统的构建 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19925 个阅读者 刷新本主题
 * 贴子主题:  mongodb与redis与Hbase比较 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-03-21 15:59:46     消息  查看  搜索  好友  邮件  复制  引用

                                                                                                

mongodb与redis与Hbase比较

                                                                                                                                                                                                                                      ************************************ mongodb ***********************************
优势

1. 强大的自动化 shading 功能(更多戳这里);
2. 全索引支持,查询非常高效;
3. 面向文档(BSON)存储,数据模式简单而强大。
4. 支持动态查询,查询指令也使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
5. 支持 javascript 表达式查询,可在服务器端执行任意的 javascript函数。

     缺点

1. 单个文档大小限制为16M,32位系统上,不支持大于2.5G的数据;
2. 对内存要求比较大,至少要保证热数据(索引,数据及系统其它开销)都能装进内存;
3. 非事务机制,无法保证事件的原子性。

     适用场景

1. 适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;
2. 非常适合文档化格式的存储及查询;
3. 高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。
4. 对性能的关注超过对功能的要求。

      ****************************** redis ************************************
优势

1. 非常丰富的数据结构;
2. Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断;
3. 数据存在内存中,读写非常的高速,可以达到10w/s的频率。

     缺点

1. Redis3.0后才出来官方的集群方案,但仍存在一些架构上的问题(出处);
2. 持久化功能体验不佳——通过快照方法实现的话,需要每隔一段时间将整个数据库的数据写到磁盘上,代价非常高;而aof方法只追踪变化的数据,类似于mysql的binlog方法,但追加log可能过大,同时所有操作均要重新执行一遍,恢复速度慢;
3. 由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。

     适用场景

     适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。更具体的可参照这篇《Redis 的 5 个常见使用场景》译文。<http://blog.jobbole.com/88383/>

      **************************** HBase ******************************
优势

1. 存储容量大,一个表可以容纳上亿行,上百万列;
2. 可通过版本进行检索,能搜到所需的历史版本数据;
3. 负载高时,可通过简单的添加机器来实现水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce);
4. 在第3点的基础上可有效避免单点故障的发生。(使用zookeeper实现该功能)

     缺点

1. 基于Java语言实现及Hadoop架构意味着其API更适用于Java项目;
2. node开发环境下所需依赖项较多、配置麻烦(或不知如何配置,如持久化配置),缺乏文档;
3. 占用内存很大,且鉴于建立在为批量分析而优化的HDFS上,导致读取性能不高;
4. API相比其它 NoSql 的相对笨拙。

     适用场景

1. bigtable类型的数据存储;
2. 对数据有版本查询需求;
3. 应对超大数据量要求扩展简单的需求。
                                    
                                                
----------------------------
原文链接:https://blog.csdn.net/u011127348/article/details/79172507

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-03-22 21:29:18 重新编辑]
  Java面向对象编程-->类的生命周期
  JavaWeb开发-->JSP技术详解(Ⅱ)
  JSP与Hibernate开发-->持久化层的映射类型
  Java网络编程-->基于MVC和RMI的分布式应用
  精通Spring-->Vue简介
  Vue3开发-->Vue CLI脚手架工具
  一套可复用的方法论!从0-1搭建数据团队,看这篇就够了
  30岁女IT工程师感叹:靠这工具,把报表做成养老工作,月薪快...
  实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供...
  flume+spark streaming+redis完整篇
  MapReduce实现自定义排序功能
  如何面对高并发?缓存?中台为什么会火?
  Apacheの日志分割
  Spark on Yarn with Hive实战案例与常见问题解决
  Hadoop、Spark、HBase与Redis的适用性讨论(全文)-数据视野
  kafka作为流式处理的上一层,为什么吞吐量那么大?
  Flume+Kafka+Storm+Redis构建大数据实时处理系统:实时统计网...
  大数据采集、清洗、处理:使用MapReduce进行离线数据分析完整...
  Hadoop的简单单词统计案例
  SQL Hadoop核心结束揭秘
  数据仓库的两种建模方法
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。