MongoDB和Redis差异

简介

MongoDB更类似MySQL,接济字段索引、游标操作,其优势在于查询成效相比较强硬,擅长查询JSON数据,能积存海量数据,可是不帮衬工作。

mysql在大数据量时效用明显下跌,mongodb越多时候作为关周详据库的一种替代。

内存管理机制

Redis数据总体设有内存,定期写入磁盘,当内存不够时,可以挑选指定的LRU算法删除数据。

MongoDB数据存在内存,由Linux系统mmap已毕,当内存不够时,只将走俏数据放入内存,其余数据存在磁盘。

支持的数据结构

redis支持的数据结构丰盛,蕴含hash、set、list等。

MongoDB数据结构相比较单一,然则接济添加的多寡表明,索引,最接近关系型数据库,扶助的询问语言分外丰裕。

性能

双面品质都相比较高,应该说都不会是瓶颈。

可靠性

两岸均支持持久化。

集群

         MongoDB集群技术相比较早熟,Redis从3.0初阶支持集群。

不适用场景

Ø  需求采用复杂sql的操作

Ø  事务性系统

 

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位系统 Redis2.0后支持虚拟内存特性(VM) 突破物理内存限制;数据可以设置时效性,类似于memcache 不同的应用场景,各有千秋
可用性 支持master-slave,replicatset(内部采用paxos选举算法,自动故障恢复),auto sharding机制,对客户端屏蔽了故障转移和切片机制 依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制;不支持auto sharding,需要依赖程序设定一致性hash机制 MongoDB优于Redis;单点问题上,MongoDB应用简单,相对用户透明,Redis比较复杂,需要客户端主动解决.(MongoDB一般使用replicasets和sharding相结合,replicasets侧重高可用性以及高可靠,sharding侧重性能,水平扩展)
可靠性 从1.8版本后,采用binlog方式(类似Mysql) 支持持久化 依赖快照进行持久化;AOF增强可靠性;增强性的同时,影响访问性能

 

一致性 不支持事务,靠客户端保证 支持事务,比较脆,仅能保证事务中的操作按顺序执行 Redis优于MongoDB
数据分析 内置数据分析功能(mapreduce) 不支持 MongoDB优于Redis
应用场景 海量数据的访问效率提升 较小数据量的性能和运算 MongoDB优于Redis
网站地图xml地图