Redis和MongoDB的区别

现在的分布式项目基本都会用到Redis和MongoDB,可是Redis和MongoDB到底有什么不同呢,今天我就基于我们公司的项目来具体介绍一下Redis和MongoDB的各自的应用场景。

首先我们这个项目中有两种应用场景:

场景一:要求TPS(不知道的右转百度)特别高的,比如我们项目有一个点赞的功能,这个点赞的功能促发频率特别高,而且并发量也会特别大,但是它的数据量不会特别大。基于这种情况下,我们采用Redis来实现点赞功能。

场景二:项目中涉及评论的内容,而且这个评论表的数据后期会非常大(海量的数据),最后在数据量非常大的情况下还要求比较复杂的查询。基于上述这些情况,我们采用MongoDB作为评论表存储数据库。

场景三:推送、评论、用MongoDB ,目前是百万级的数据,将来会有千万级、亿级。

场景四:直播评论用Redis,当时是用来存储一些热数据,量也不大,但是操作很频繁

所以总结一下,MongoDB 的适用场景为:数据不是特别重要(例如通知,推送这些),数据表结构变化较为频繁,数据量特别大,数据的并发性特别高,数据结构比较特别(例如地图的位置坐标),这些情况下用 MongoDB , 其他情况就还是用 MySQL ,这样组合使用就可以达到最大的效率。

​​MongoDB和Redis区别​​

简介

MongoDB更类似Mysql,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。

Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。

内存管理机制

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

MongoDB数据存在内存,由linux系统mmap实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

支持的数据结构

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

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

性能

二者性能都比较高,应该说都不会是瓶颈。

可靠性

二者均支持持久化。

集群

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

不适用场景

  • 需要使用复杂sql的操作

  • 事务性系统

你可能感兴趣的:(缓存,redis,mongodb)