Redis与MemCache、MongoDB的区别

2021-04-02  本文已影响0人  钟离惜

一、Redis与MemCache

1.1、相同点

都支持一主多从集群模式。
都是将数据存放在内存中,都是内存数据库。

1.2、区别

Redis优势区别
Redis支持string、list、set、hash等数据结构,而Memcache只支持string。
Redis支持AOF、RDB持久化策略,Memcache不支持持久化,宕机全无。
Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘,Memcache超过内存比例会抹掉前面的数据。
Redis可以在set时或set后用expire设置过期,Memcache只能在set时设置过期。
Redis的key、value最大支持512MB,Memcache最大是1MB。
Redis支持pub/sub消息订阅机制,可以用来进行消息订阅与通知。

Memcache优势区别
Memcache可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS,适用于最大程度扛量。
Redis单实例QPS大概只有5000~2W(未严格验证)。
Memcache官方支持Linux和Win,而Redis官方只支持Linux。

二、Redis与MongoDB

Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量操作一样简单。
MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活。

指标 MongoDB(v2.4.9) Redis(v2.4.17) 比较说明
实现语言 C++ C/C++ -
协议 BSON、自定义二进制 类Telnet -
性能 依赖内存,TPS较高 依赖内存,TPS非常高 Redis优于MongoDB
可操作性 丰富的数据表达、索引;最类似于关系数据库,支持丰富的查询语言 数据丰富,较少的IO MongoDB优于Redis
内存及存储 适合大数据量存储,依赖系统虚拟内存管理,采用镜像文件存储;内存占有率比较高,官方建议独立部署在64位系统(32位有最大2.5G文件限制,64位没有改限制) Redis2.0后增加虚拟内存特性,突破物理内存限制;数据可以设置时效性,类似于memcache 不同的应用角度看,各有优势
可用性 支持master-slave,replicaset(内部采用paxos选举算法,自动故障恢复),auto sharding机制,对客户端屏蔽了故障转移和切分机制 依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制;不支持自动sharding,需要依赖程序设定一致hash机制 MongoDB优于Redis;单点问题上,MongoDB应用简单,相对用户透明,Redis比较复杂,需要客户端主动解决。(MongoDB 一般会使用replica sets和sharding功能结合,replica sets侧重高可用性及高可靠性,而sharding侧重于性能、易扩展)
可靠性 从1.8版本后,采用binlog方式(MySQL同样采用该方式)支持持久化,增加可靠性 依赖快照进行持久化;AOF增强可靠性;增强可靠性的同时,影响访问性能 MongoDB优于Redis
一致性 不支持事务,靠客户端自身保证 支持事务,比较弱,仅能保证事务中的操作按顺序执行 Redis优于MongoDB
数据分析 内置数据分析功能(mapreduce) 不支持 MongoDB优于Redis
应用场景 海量数据的访问效率提升 较小数据量的性能及运算 MongoDB优于Redis

转载文章
Redis和Memcache区别,优缺点对比
memcache、redis等常用nosql解决方案,优缺点以及使用场景
redis,memcache二者的区别是?(优缺点)
Redis和MongoDB的区别(面试受用)

上一篇下一篇

猜你喜欢

热点阅读