NoSQL,浅谈redis与mongoDB的区别

2020-05-22 00:00:00 数据 数据库 内存 关系 性能

MongoDB和Redis都是NoSQL数据库,采用结构型数据存储,而MySQL、oracle等则属于传统的关系型数据库。

  1. NoSQL数据库与关系型数据库的优缺点
  • 关系型数据库

优点:以完善的关系代数理论为基础,有严格的标准,支持事务ACID四性,借助索引机制可以实现高效的查询。

缺点:可扩展性差,无法较好地支持海量数据存储,数据模型过于死板,事务机制影响了系统的整体性能,全文搜索功能较弱。

  • NoSQL数据库

优点:数据之间无关系,易扩展。有非常高的读写性能,支持大量数据,性能高。有灵活的数据模型,无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。

缺点:复杂查询性能不高,一般都不能实现事务的强一致性。

2. redis与mongoDB的区别

  • 内存管理

Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据。

MongoDB 数据会优先存于内存,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

需要注意的是Redis 和mongoDB特别消耗内存,一般不建议将它们和别的服务部署在同一台服务器上。

  • 数据结构

Redis 支持的数据结构丰富,包括hash、set、list等。

MongoDB 数据结构比较单一,但是支持丰富的数据表达,索引,类似关系型数据库,支持的查询语言非常丰富。

  • 数据量和性能

当物理内存够用的时候,性能,redis>mongodb>mysql

数据量,mysql>mongodb>redis

注意mongodb可以存储文件,适合存放大量的小文件,内置了GirdFS 的分布式文件系统。

  • 可靠性

mongodb从1.8版本后,采用binlog方式(MySQL同样采用该方式)支持持久化,增加可靠性;

Redis依赖快照进行持久化;AOF增强可靠性;增强可靠性的同时,影响访问性能。

可靠性上MongoDB优于Redis。

相关文章