Redis和MongoDB的区别(面试受用)

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

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

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

就Redis和MongoDB来说,大家一般称之为Redis缓存、MongoDB数据库。这也是有道有理有根据的,

Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量操作一样简单;

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

点击查看:MongoDB语法与现有关系型数据库SQL语法比较

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应用简单,相对用户透明,Redis比较复杂,需要客户端主动解决。(MongoDB 一般会使用replica sets和sharding功能结合,replica sets侧重高可用性及高可靠性,而sharding侧重于性能、易扩展)
可靠性 从1.8版本后,采用binlog方式(MySQL同样采用该方式)支持持久化,增加可靠性 依赖快照进行持久化;AOF增强可靠性;增强可靠性的同时,影响访问性能 MongoDB优于Redis
一致性 不支持事物,靠客户端自身保证 支持事物,比较弱,仅能保证事物中的操作按顺序执行 Redis优于MongoDB
数据分析 内置数据分析功能(mapreduce) 不支持 MongoDB优于Redis
应用场景 海量数据的访问效率提升 较小数据量的性能及运算 MongoDB优于Redis

Redis和MongoDB的区别相关推荐

  1. Redis和MongoDB的区别(面试受用)

    项目中用的是MongoDB,但是为什么用其实当时选型的时候也没有太多考虑,只是认为数据量比较大,所以采用MongoDB. 最近又想起为什么用MongoDB,就查阅一下,汇总汇总: 之前也用过redis ...

  2. 面试官:说一下Redis和MongoDB的区别?

    项目中用的是MongoDB,但是为什么用其实当时选型的时候也没有太多考虑,只是认为数据量比较大,所以采用MongoDB. 最近又想起为什么用MongoDB,就查阅一下,汇总汇总: 之前也用过redis ...

  3. Redis和MongoDB的区别-

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. MongoDB是一个基于分布 ...

  4. Redis和Mongodb应用场景

    Redis和Mongodb应用场景 原文: Redis和MongoDB的区别以及应用场景 现在的分布式项目基本都会用到redis和mongodb,可是redis和mongdb到底有什么不同呢,今天我就 ...

  5. Nosql简介 Redis,Memchche,MongoDb的区别

    Nosql介绍 Nosql的全称是Not Only Sql,这个概念早起就有人提出,在09年的时候比较火.Nosql指的是非关系型数据库,而我们常用的都是关系型数据库.就像我们常用的mysql,sql ...

  6. Redis、Memcache和MongoDB的区别

    >>Memcached Memcached的优点: Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环 ...

  7. mysql 迭代更新_MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)

    MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本 ...

  8. redis.mecmcached和mongoDB的区别

    转载自  https://blog.csdn.net/cleble/article/details/78325527 https://segmentfault.com/q/10100000025880 ...

  9. MySQL、MongoDB、Redis 数据库之间的区别

    [转自]:https://blog.csdn.net/CatStarXcode/article/details/79513425 NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数 ...

最新文章

  1. 为什么使用缩进来分组语句?15个为什么,帮助你更好的理解Python!
  2. ACMNO.49:一元三次方程求解(主要就是精度问题)
  3. 快速建站的php开源程序
  4. 菜鸟学Linux 第050篇笔记 dhcp
  5. matlab--曲线拟合
  6. python生成wheel包注意事项
  7. JSP简单练习-猜字母游戏
  8. (2015-12-09)java.util.Arrays的用法
  9. 为什么博图中放置按下按钮无反应_为什么点击按钮没反应呢?
  10. php 下拉表单,PHP表单和填充下拉列表问题
  11. 深度学习目标检测之 YOLO v1
  12. WebAPI 和 WebService的区别
  13. PHP——下载图片到本地代码
  14. JSP程序设计实验报告
  15. 00002__失恋卖茶女
  16. datatables rows selected
  17. Echarts数据可视化总结
  18. Microsoft.Office.Interop.Excel # Microsoft Excel xx.0 Object Library 引用
  19. H3C SecPath F100 系列防火墙基本配置
  20. abap 发票冲销VF11的BAPI:BAPI_BILLINGDOC_CANCEL1

热门文章

  1. java instance关键字_Java中instanceof关键字和isInstance()方法的区别是什么
  2. 在python程序中嵌入浏览器_用Python中的wxPython实现最基本的浏览器功能
  3. 洛奇 服务器文件,【公告】电信三区服务器合并说明...
  4. STM32 NVIC中断
  5. 数值计算方法(六)——迭代法求解线性方程组
  6. java 8和jdk区别_java-8 – JDK 6和JDK8之间的Java Collection差异
  7. ldap radius mysql_OpenLDAP+FreeRADIUS+MySQL+RP-PPPOE 构建PPPOE服务器
  8. Java打包后读文件和写文件操作方法
  9. win10更新后无法进入linux,双系统win10更新后无法进入linux
  10. PAT乙:1009 说反话