83. 面试被问到了Redis和MongoDB的区别?看这里就对了

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 83. 面试被问到了Redis和MongoDB的区别?看这里就对了,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

面试被问到了Redis和MongoDB的区别?看这里就对了

项目中用的是MongoDB,但是为什么用其实当时选型的时候也没有太多考虑,只是认为数据量比较大,所以采用MongoDB。

最近又想起为什么用MongoDB,就查阅一下,汇总汇总:

之前也用过redis,当时是用来存储一些热数据,量也不大,但是操作很频繁。现在项目中用的是MongoDB,目前是百万级的数据,将来会有千万级、亿级。

就Redis和MongoDB来说,大家一般称之为Redis缓存、MongoDB数据库。这也是有道有理有根据的,Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量操作一样简单;

MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活,这一点在面试的时候很受用。

MongoDB语法与现有关系型数据库SQL语法比较

https://www.cnblogs.com/java-spring/p/9488200.html

Mongodb与Redis应用指标对比

MongoDB和Redis都是NoSQL,采用结构型数据存储。二者在使用场景中,存在一定的区别,这也主要由于二者在内存映射的处理过程,持久化的处理方法不同。MongoDB建议集群部署,更多的考虑到集群方案,Redis更偏重于进程顺序写入,虽然支持集群,也仅限于主-从模式。

指标 MongoDB(v2.4.9) Redis(v2.4.17) 比较说明
实现语言 C++ C/C++
协议 BSON、自定义二进制 类 Telnet
性能 依赖内存,TPS 较高 依赖内存,TPS 非常高 Redis 优于 MongoDB
可操作性 丰富的数据表达、索引;像类似于关系数据库,支持丰富的查询语言 数据丰富,较少的 IO MongoDB 优于 Redis
内存及存储 适合大数据量存储,依赖系统虚拟内存管理,采用镜像文件存储;内存占有率比较高,官方建议独立部善在64位系统(32位有最大2.5G文件限制,64位没有改限制) Redis2.0后增加虚拟内存特性,突破物理内存限制:数据可以设置时效性,类似于 memcache 不同的应用角度,各有优势
可用性 支持 master-slave, replicaset (内部采用 paxos 选举算法,自动故障恢复) , auto sharding 机制,对客户端屏蔽了故障转移和切分机制 依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制;不支持自动 sharding,需要依赖程序设定一致 hash 机制 MongoDB 优于 Redis;单点问题上,MongoDB 应用简单, 相对用客户端主动解决。( MongoDB 一般会使用 replica sets 和 shardir 高可用性及高可靠性,而 sharding 侧重于性能、易扩展)
可靠性 从1.8版本后,采用 binlog 方式(MySQL 同样采用该方式)支持持久化,增加可靠性 依赖快照进行持久化;AOF 增强可靠性;增强可靠性的同时,影响访问性能 MongoDB 优于 Redis
一致性 不支持事务,靠客户端自身保证 支持事务,比较弱,仅能保证事务中的操作按顺序执行 Redis 优于 MongoDB
数据分析 内置数据分析功能(MapReduce) 不支持 MongoDB 优于 Redis
应用场景 海量数据的访问效率提升 较小数据量的性能及运算 MongoDB 优于 Redis

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/141696.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!