mongodb和redis区别是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb和redis区别是啥?相关的知识,希望对你有一定的参考价值。
就Redis和MongoDB来说,大家一般称之为Redis缓存、MongoDB数据库。这也是有道有理有根据的,
Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量操作一样简单;
MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活,这一点在面试的时候很受用。《linux 就该这么学》
Mongodb与Redis应用指标对比
MongoDB和Redis都是NoSQL,采用结构型数据存储。二者在使用场景中,存在一定的区别,这也主要由于
二者在内存映射的处理过程,持久化的处理方法不同。MongoDB建议集群部署,更多的考虑到集群方案,Redis
更偏重于进程顺序写入,虽然支持集群,也仅限于主-从模式。
MongoDB数据存在内存,由Linux系统mmap实现,当内存不足时,只将热点数据放入内存,其他数据存在磁盘;Redis数据全部存在内存,定期写入磁盘,内存不够时,可以选择指定的LRU算法删除数据。
2.支持数据结构
Redis数据结构较为丰富,包含hash、set、list等,MongoDB数据结构比较单一,支持丰富的数据表达,索引,最类似关系型数据库。
3.性能
MongoDB依赖内存,TPS较高;Redis依赖内存,TPS非常高。
4.可靠性
MongoDB采用binlog方式支持持久性,增加可靠性;Redis依赖快照进行持久化,AOF增强可靠性,但影响访问性能。
5.数据分析
MongoDB支持数据分析,内置数据分析的功能;而Redis不支持。
6.集群
MongoDB集群技术比较成熟,而Redis从3.0版本开始支持集群。
redis 和 mongodb 比起来优缺点是啥?
参考技术A一、优点:
1、支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)
2、支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。
3、支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制,master-slave机制是Redis进行HA的重要手段。
二、缺点:
1、Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)。
2、支持简单的事务需求,但业界使用场景很少,并不成熟,既是优点也是缺点。
3、Redis在string类型上会消耗较多内存,可以使用dict(hash表)压缩存储以降低内存耗用。
扩展资料:
redis使用注意事项:
1、注意垃圾回收:Redis是一个提供持久化功能的内存数据库,如果不指定上面值的过期时间,并且也不进行定期的清理工作,那么Redis内存占用会越来越大,当有一天超过了系统可用内存,那么swap上场,离性能陡降的时间就不远了。
2、使用key值前缀来作命名空间:虽然说Redis支持多个数据库(默认32个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。
3、Redis并不支持Sharding,但是当数据量超过单机内存时,不得不考虑Sharding的事(注意Slave不是用来做Sharding操作的,只是数据的一个备份和读写分离而已)。
参考资料来源:百度百科-Redis
参考资料来源:百度百科-mongodb
以上是关于mongodb和redis区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章