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

Redis 优点:

a) 读写性能优异

b) 支持数据持久化,支持 AOF 和 RDB 两种持久化方式(https://www.cnblogs.com/chenliangcl/p/7240350.html)

c) 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。

d) 数据结构丰富:数据结构丰富:支持 string、hash、set、sortedset、list 等数据结构。

缺点:

e) Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要 等待机器重启或者手动切换前端的 IP 才能恢复。

f) 主机宕机,宕机前有部分数据未能及时同步到从机,切换 IP 后还会引入数据不一致的问题, 降低了系统的可用性。

h) Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题, 运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。

MongoDB 优点:

a)弱一致性(最终一致),更能保证用户的访问速度

b)文档结构的存储方式,能够更便捷的获取数

c)内置 GridFS,高效存储二进制大对象 (比如照片和视频)

d)支持复制集、主备、互为主备、自动分片等特性

e)动态查询

f)全索引支持,扩展到内部对象和内嵌数组

缺点:

a)不支持事务

b)MongoDB 占用空间过大

c)维护工具不够成熟

Redis 和 MongoDB 的优缺点??的更多相关文章

  1. Redis、Memcache、MongoDb的优缺点

    Redis.Memcache.MongoDb的优缺点 Redis优点 支持多种数据结构,如 string(字符串). list(双向链表).dict(hash表).set(集合).zset(排序set ...

  2. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  3. 面试阿里被分布式“搞懵”,Redis、MongoDB、memcached没答上来

    都说大厂面试难,一点也没有错,一线大厂的面试究竟怎么样还得自己亲身经历了才知道.小白面试阿里,就被面试官吊打,一问分布式就被“搞懵”了,Redis.MongoDB.Memcached都没答好,很多没有 ...

  4. [MongoDB]MongoDB的优缺点及与关系型数据库的比较

    汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...

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

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

  6. SSH整合redis和MongoDB错误笔记

    由于毕设中做的是图片搜索网站,选择前端框用SSH,因为之间接触过SSH框架,略有了解,但没有深究,现在在整合redis和mongodb的过程中遇到很多错误,也是十分痛苦,只能通过百度和一步步尝试着解决 ...

  7. redis和mongodb的比较

    >>RedisRedis的优点:支持多种数据结构,如 string(字符串). list(双向链表).dict(hash表).set(集合).zset(排序set).hyperloglog ...

  8. 基于Redis+MySQL+MongoDB存储架构应用

    摘  要: Redis+MySQL+MongoDB技术架构实现了本项目中大数据存储和实时云计算的需求.使用MongoDB切片的水平动态添加,可在不中断平台业务系统的同时保障扩容后的查询速度和云计算效能 ...

  9. 浅析Redis 和MongoDB

    今天来聊聊什么事nosql,一听nosql也许很多人会觉得很高大上的感觉,但其实接触过了也还觉得还行,随着当今数据的疯狂爆炸性的增长,传统的RDBMS也越来越暴露出他的不足之处,所以,作为一名合格的程 ...

随机推荐

  1. Python---进阶---Tkinter---game

    一.用tkinter写一个小游戏,来随机生成我们需要的名字 # 用tkinter写一个小游戏,来随机生成我们需要的名字 import tkinter as tkimport random window ...

  2. day3 ord,chr,random,string

    day3复习 >>> for i in range(10): ... if i == 3: ... break ... print(i) ... 0 1 2 >>> ...

  3. sql中count(1)和count(*)有区别吗

    count(*) 对 innodb 而言,它需要把数据从磁盘中读取出来然后累计计数:而 MyISAM 引擎把一个表的总行数存在了磁盘上,所以执行 count(*) 会直接返回这个数,如果有 where ...

  4. 【机器人M号】题解

    题目 题目描述 3030年,Macsy正在火星部署一批机器人. 第1秒,他把机器人1号运到了火星,机器人1号可以制造其他的机器人. 第2秒,机器人1号造出了第一个机器人--机器人2号. 第3秒,机器人 ...

  5. [CF286C] Main Sequence

    问题描述 定义幸运数列: 空数列是幸运数列 如果 S 是幸运数列,那么 {r, S, -r} 也是幸运数列 (r > 0) 如果 S 和 T 都是幸运数列,那么 {S, T} 也是幸运数列 给定 ...

  6. 【WINDOWS】设置路由表实现有线内网,无线外网

    前提!!! 需要有线无线双网卡

  7. Internet History, Technology, and Security(week6)——Technology: Transport Control Protocol(TCP)

    前言: 这周开始学习分层网络模型的第三层,传输层. Transport/Reliability: Transport Layer TCP层的目的是补偿IP层中可能出现的错误,并充分利用可用资源.由于I ...

  8. Zookeeper w3cschool教程

    1.简介 ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题. ZooKeeper允许开发 ...

  9. hashcode native

    hashcode Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值. 在设计hashCode方法和equal ...

  10. WWDC2014代码和视频下载

    WWDC2014 sample code 地址 http://pan.baidu.com/s/1qWGznnY WWDC2014 videos 地址 https://github.com/liubin ...