• Redis和Memcache都是将数据放在内存中,都是内存数据库,不过Memcache还可以缓存注入图片、视频等文件
  • 数据类型:memcache在添加数据时需要指定数据库的字节长度,而Redis不需要
  • 虚拟内存:Redis在物理内存用完时,会将一些很久没用到的value交换到磁盘
  • 过期策略:memcahe在set时就指定,如set keyname 0 0 8,即永不过期;Redis可以通过例如expire设定,如:expire name 10
  • 分布式:设定memcache集群。利用magent做一主多从;Redis可以做一主多从。都可以一主多从
  • 存储数据安全:memcahe挂掉后,数据就没了;Redis可以定期保存到磁盘(持久化)
  • 灾难恢复:memcache挂掉后,数据就没了;Redis可以通过aof恢复

1、性能:都比较高,性能来说应该不是瓶颈,总体来说,TPS方面Redis和memcache差不多,但要大于MongoDB

2、操作便利性:

  • memcache数据结构单一;
  • Redis丰富一些,数据操作方便,Redis更好一些,较少的网络IO次数;
  • MongoDB支持丰富的数据表达、索引,最类似关系型数据库,支持的查询语言非常丰富。

3、内存空间大小和数据量大小:

  • Redis在2.0以后增加了自己的VM特性,突破物理内存限制;可以对key value设置过期时间(类似memcache);
  • memcache可以修改最大可用内存,采用LRU算法;
  • MongoDB适合大数据量的存储,依赖操作系统VM做内存管理,吃内粗也比较厉害,服务不要和别的服务一起

4、可用性(单点问题)

  • Redis依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制,因性能和效率问题,所以单点问题比较复杂;不支持自动sharding,需要依赖程序设定一致hash机制。一种替代方案是,不用Redis本身的复制机制,采用自己做主动复制(多分存储),或者改成增量复制的方式,一只西瓜问题和性能的权衡。
  • memcache本身没有数据冗余机制,也没必要;对于故障预防,采用依赖成熟的hash或者环状的算法,解决单点故障引起的抖动问题。
  • MongoDB支持master-slave、replicaset、auto sharding机制,对客户端屏蔽了故障转移和切分机制

5、可靠性(持久化)

  • Redis支持(快照、AOF):依赖快照进行持久化,AOF增强了可靠性的同时,对性能有所影响;
  • memcache不支持,通常用在做缓存,提升性能
  • MongoDB从1.8开始采用binlog方式支持持久化的可靠性

6、数据一致性(事务支持)

  • memcache在并发场景下,用cas保持一致性
  • Redis事务支持比较弱,只能保证事务中的每个操作连续执行
  • MongoDB不支持事务

7、数据分析

  • MongoDB内置了数据分析的功能(mapreduce),其他不支持

8、应用场景

  • redis多用于数据量较小性能操作和运算上
  • memcache用于在动态系统中减少数据库负载,提升性能;做缓存,提高性能(适合读多写少,对于数据量比较大,可以采用sharding)
  • MongoDB主要用于解决海量数据的访问效率问题

Redis、MongoDB、Memcache的比较相关推荐

  1. Redis、Memcache和MongoDB的区别

    >>Memcached Memcached的优点: Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环 ...

  2. redis、memcache、mongoDB 对比

    从以下几个维度,对 redis.memcache.mongoDB 做了对比.  1.性能  都比较高,性能对我们来说应该都不是瓶颈.  总体来讲,TPS 方面 redis 和 memcache 差不多 ...

  3. 关于 redis、memcache、mongoDB 的对比

    从以下几个维度,对 redis.memcache.mongoDB 做了对比. 1.性能 都比较高,性能对我们来说应该都不是瓶颈. 总体来讲,TPS 方面 redis 和 memcache 差不多,要大 ...

  4. Redis,Memcache,MongoDb的特点与区别

    Redis,Memcache,MongoDb的特点与区别 总结: Redis相比memcached有哪些优势? (1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富 ...

  5. 关系型数据库(Relational Database)与非关系型数据库(NoSQL)的区别:(MySQL,Redis,Memcache,MongoDB)

    Table of Contents 关系型数据库(Relational Database) 什么是关系数据库 什么是SQL? 关系数据库的结构 关系模型 关系数据库的好处 数据一致性 隔离性和原子性 ...

  6. Redis与Memcache的对比

    Redis与Memcache的对比 1. Redis和Memcache都是将数据存放在内存中,都是内存数据库. 不过memcache还可用于缓存其他东西,例如图片.视频等等 2. 数据类型–Memca ...

  7. Redis与Memcache对比

    文章相关视频: C++架构师学习地址:C/C++Linux服务器开发高级架构师/Linux后台架构师 Linux网络服务器模型,redis,memcached,nginx对比 epoll的网络模型,从 ...

  8. Redis和Memcache的区别是什么

    Redis和Memcache都是内存数据库,但它们之间还是有区别的,跟着ytkah看看Redis和Memcache的区别吧 Redis 支持多种数据结构,如string,list,dict,set,z ...

  9. 选redis还是memcache?

    为什么80%的码农都做不了架构师?>>>    memcache和redis是互联网分层架构中,最常用的KV缓存.不少同学在选型的时候会纠结,到底是选择memcache还是redis ...

  10. nosql ( redis 跟 memcache )的区别

    一.使用Redis有哪些好处? 1.速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1): 2.支持丰富数据类型,支持string,list,s ...

最新文章

  1. 机器学习基础-特征缩放交叉验证法-05
  2. 使用Excel公式,获取 当前 Excel 的Sheet页 的 名字
  3. python入门笔记第一天
  4. 超实用的JavaScript代码大全
  5. 调用高德API实现数据可视化
  6. 流行于大学里的30个脑筋急转弯
  7. TCP_NODELAY/SO_LINGER/SO_NOSIGPIPE/MSG_NOSIGNAL设置
  8. 志愿人生——带给你每一次温暖
  9. 使用Kettle 进行行Oracle数据迁移时处理编码转换处理US7ASCII 编码
  10. python在输出中间加空行_python输出空行
  11. hwd分别是长宽高_DS-2CD7A87HWD-XZS 海康威视800万AI人脸抓拍比对筒型网络摄像机
  12. 线下店迎来“文艺复兴”,三只松鼠哪里寻“独门妙方”?
  13. Fastqc使用说明
  14. 第四次作业:“师路南通网站”用户体验分析
  15. STM32入门笔记——GPIO的初始化
  16. IAP-In App Purchase流程
  17. c7000一键root,三星c7000拆机教程
  18. maven教程 IDEA中使用Maven Tomcat配置 依赖管理
  19. 我在itpub的日子——写在itpub八周年之际
  20. 反掌娱乐创始人姜越 获第五届博鳌企业论坛 “行业领军人物”

热门文章

  1. R语言使用edit函数在Rsudio中生成数据编辑器(在windows中生成编辑器)、在编辑器中输出需要的数据生成最终的dataframe
  2. R语言创建频数表和列联表
  3. mysql简拼_mysql实现汉字换拼音,及汉字转简拼
  4. 纳米孔测序高错误区域恢复率高达99%,肖传乐/刘奕志/王建新等在Nature子刊发表新校正组装算法
  5. Linux下Boost编译安装
  6. 生物学重复吗?还有技术重复?
  7. 人体姿态估计--RMPE: Regional Multi-Person Pose Estimation
  8. 在WinSCP中使用sudo进行sftp,不用输入密码,获得root权限
  9. LeetCode 91. Decode Ways--动态规划DP的Python和Java解法
  10. latex 编译Underfull \hbox (badness 10000) in paragraph警告