- A+
Redis、Memcache和MongoDB是比较常见的NoSQL数据库,数据库吧分享Redis、Memcache和MongoDB的优缺点对比及对应的适用场景:
Redis、Memcache和MongoDB优缺点详解
关于Redis、Memcache和MongoDB三者的优缺点分别详解可以参考:NoSQL数据库优缺点对比,本文只做对比。
数据库吧分享Redis、Memcache和MongoDB从性能、可靠、便捷等方面对比:
性能对比
三者的性能都比较高,性能对比的话:Memcache和Redis差不多,要高于MongoDB。
便捷性对比
- memcache数据结构单一;
- redis丰富一些,数据操作方面,redis更好一些,较少的网络IO次数;
- mongodb支持丰富的数据表达、索引,最类似关系型数据库,支持的查询语言非常丰富。
存储空间对比
- redis在2.0版本后增加了自己的VM特性,突破物理内存的限制,可以对
key value
设置过期时间(类似memcache); - memcache可以修改最大可用内存,采用LRU算法;
- mongoDB适合大数据量的存储,依赖操作系统VM做内存管理,吃内存也比较厉害,服务不要和别的服务在一起。
可用性对比
- redis依赖客户端来实现分布式读写。主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制,因性能和效率问题,所以单点问题比较复杂,不支持自动sharding,需要依赖程序设定一致hash机制。一种替代方案是不用redis本身的复制机制,采用自己做主动复制(多份存储),或者改成增量复制的方式(需要自己实现),一致性问题和性能的权衡。
- Memcache本身没有数据冗余机制,也没必要;对于故障预防,采用依赖成熟的hash或者环状的算法,解决单点故障引起的抖动问题。
- mongoDB支持
master-slave
、replicaset
(内部采用paxos选举算法,自动故障恢复)、auto sharding
机制,对客户端屏蔽了故障转移和切分机制。
可靠性对比
- redis支持(快照、AOF)依赖快照进行持久化,aof增强了可靠性的同时,对性能有所影响;
- memcache不支持,通常用在做缓存,提升性能;
- MongoDB从1.8版本开始采用binlog方式支持持久化的可靠性。
一致性对比
- Memcache在并发场景下,用cas保证一致性;
- redis事务支持比较弱,只能保证事务中的每个操作连续执行;
- mongoDB不支持事务。
数据分析对比
mongoDB内置了数据分析的功能(mapreduce),其他两者不支持。
应用场景
- redis:数据量较小的更性能操作和运算上;
- memcache:用于在动态系统中减少数据库负载,提升性能。做缓存,提高性能(适合读多写少,对于数据量比较大,可以采用sharding);
- MongoDB:主要解决海量数据的访问效率问题。
2023腾讯云服务器超便宜,这个价格太可以了,抓紧上车!
- 2核2G3M服务器30元/3个月:点此直达
- 阿里云优惠在阿里云百科:aliyunbaike.com/go/youhui
- 2核2G3M服务器95元一年:点此直达
- 2核2G4M服务器112元/1年:点此直达
- 2核2G4M服务器396元/1年:点此直达
- 2核4G5M服务器168元/3年:点此直达
- 2核4G5M服务器628元/3年:点此直达
- 4核8G12M服务器446元/1年 518元15个月:点此直达
- 8核16G18M服务器1668元/15个月
- 16核32G28M服务器3468元/15个月
注意:以上特价轻量服务器限制条件为“产品首单特惠”,如果你的腾讯云账号已经是老用户,建议重新注册一个腾讯云账号,如果你是新用户符合条件,那么无脑入,这个CPU内存带宽配置,价格确实便宜,值得买!
注意:购买阿里云数据库,先领取阿里云2000元代金券,符合条件的订单可以使用代金券抵扣。