Redis和MongoDB区别

MongoDB 更类似 MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询 JSON 数据,能存储海量数据,但是不支持事务。
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,支持多种类型的数据结构,可用作数据库,高速缓存和消息队列代理。
1、内存管理机制
Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据。
MongoDB 数据存在内存,由 linux系统 mmap 实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

2、支持的数据结构
Redis 支持的数据结构丰富,包括hash、set、list等。MongoDB 数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。

3、数据量和性能:
当物理内存够用的时候,redis>mongodb>mysql
当物理内存不够用的时候,redis和mongodb都会使用虚拟内存。
实际上如果redis要开始虚拟内存,那很明显要么加内存条,要么你换个数据库了。
但是,mongodb不一样,只要,业务上能保证,冷热数据的读写比,使得热数据在物理内存中,mmap的交换较少。
mongodb还是能够保证性能。

4、性能
mongodb依赖内存,TPS较高;Redis依赖内存,TPS非常高。性能上Redis优于MongoDB。

5、可靠性
mongodb从1.8版本后,采用binlog方式(MySQL同样采用该方式)支持持久化,增加可靠性;
Redis依赖快照进行持久化;AOF增强可靠性;增强可靠性的同时,影响访问性能。
可靠性上MongoDB优于Redis。

6、数据分析
mongodb内置数据分析功能(mapreduce);而Redis不支持。

7、事务支持情况
Redis 事务支持比较弱,只能保证事务中的每个操作连续执行;mongodb不支持事务。

8、集群
MongoDB 集群技术比较成熟,Redis从3.0开始支持集群。

原文地址:https://www.cnblogs.com/ritchy/p/11676841.html

时间: 2024-07-31 14:53:18

Redis和MongoDB区别的相关文章

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

HBase.Redis.MongoDB.Couchbase.LevelDB主流 NoSQL 数据库的对比 最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资料搜罗汇总,

监控开发之用munin来自定义插件监控redis和mongodb

求监控组的大哥大妹子们干点事,真不容易 ! 要问他们是谁?  他们是神 .轻易别找他们,因为找了也是白找. 上次因为python和redis长时间brpop的时候,会有线程休眠挂起的情况,所有通知报警平台被下线了.这次算是完美解决了.再把他给上线.这两公司的告警已经开始往我这边的接口开始仍了. 这边正在改zabbix cmdb的控制,所以暂时不能登录.等搞好了后,让他们搞下redis和mogodb的监控,居然还让我发邮件和提供脚本及思路啥的...   一寻思,又要去zabbix,又要写脚本,还不

Java环境配置 数据库 缓存Redis Nosql MongoDB 安装

系统选择 centos 7.0 1.java安装篇 rpm -qa |grep java 检测是否java yum remove java-1.7.0-openjdk 使用命令删除java 到oracle官方下载java安装包 rpm -ivh jdk-7u60-linux-x64.rpm ->安装jdk 2.Tomcat 安装篇 在apache官方下载tomcat wget http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.5

大偏移量下Redis、MongoDB分页/排名性能比较

题目其实并不太准确,因为数据库并不会提供分页.排名等功能,提供的只是数据的存取,分页排名这些都是我们基于数据库的实用案例而已.然而无论是Redis还是MongoDB,通常都有一些常规的做分页和排名的方法.本文就通过一些测试数据来向大家介绍Redis和MongoDB(以及传统关系型数据库)在这方面的性能差别. 分页 首先我们来做一个分页,在MongoDB中示例数据如下所未: db.scores.find(); {lid: ObjectId("4fe506dabb2bfa742d000001&quo

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

摘  要: Redis+MySQL+MongoDB技术架构实现了本项目中大数据存储和实时云计算的需求.使用MongoDB切片的水平动态添加,可在不中断平台业务系统的同时保障扩容后的查询速度和云计算效能:依据切片键索引分片,位于各切片独立进行计算,使大数据下的实时分析成为现实.对于高频访问的数据放在了Redis中,有效地降低磁盘I/O,使业务系统响应更为敏捷,满足了高并发下应用服务的高呑吐要求. 关键词: 移动位置服务SaaS:Redis:MongoDB 基于移动位置服务的应用是根据用户所在位置提

Memcache与Redis有什么区别?

Redis 和 Memcache 都是基于内存的数据存储系统.Memcached是高性能分布式内存缓存服务,其本质上就是一个内存key-value数据库.Redis是一个开源的key-value存储系统.与Memcached类似,Redis将大部分数据存储在内存中,支持的数据类型包括:字符串.哈希表.链表.集合.有序集合以及基于这些数据类型的相关操作.那么,Memcache与Redis有什么区别呢?让我们一起来看一下. 1.数据操作不同 与Memcached仅支持简单的key-value结构的数

一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏

原文:一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏 欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.exception.site 小哈今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是小哈在工作中经常用到的,其中包括 Mysql

Redis.Memcache和MongoDB区别?

Memcached的优势: Memcached可以利用多核优势,单吞吐量极高,可以达到几十万QPS(取决于Key.value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右.)适用于最大程度抗量 支持直接配置session handle Memcached的局限性: 只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型 无法进行持久化,数据不能备份,只能用于缓存使用.且重启后数据全部丢失. 无法进行数据同步,不能将MC中的数据迁移到其他MC实例中. M

Memcached, Redis, MongoDB区别

mongodb和memcached不是一个范畴内的东西.mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据.mongodb和memcached不存在谁替换谁的问题. 和memcached更为接近的是redis.它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存.在我们团队的项目中,一开始用的是memcached,后来用redis替代. 相比memcached: 1.redis具有持久化机