简单比较:

  1. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。memcache只支持简单的K/V类型数据, 不过memcache可以缓存其他东西如图片,视频等.
  2. Redis2.0之后增加自己的VM特性,突破物理内存的限制,(触发swap操作), redis支持使用RDB,AOF等方式持久化数据,m不支持,
  3. Redis支持使用redis sentinel搭建集群, 当master节点down时,将其中一个slave升级为master, 提供高可用行方案.
  4. Redis支持pus,sub模型, 模拟简单的消息队列.
  5. Memcache在并发场景下使用CAS保持数据一致性, redis不支持事务,
  6. Memcache支持多线程,redis是单线程

应用场景:

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

plus:

Redis有数据持久化功能,这个功能与Redis的单线程特性结合,就成了Redis故障的高发区域。默认的RDB持久化会阻塞线程,使得Redis对正常请求无法响应,在高流量网站上容易出现大量请求错误。这在系统中称为“涌现”,当然这是坏的一个。当然后来Redis也发展出了AOF持久化方式(默认没有打开,要手工开启),一定程度上减缓了Redis的持久化问题。Redis会fork一个子进程来单独处理持久化。可是fork功能并非无代价,它一样有消耗内存资源,影响主程序响应请求的问题。阻塞是Redis应用的噩梦,跟Node.js一样。

小结:

综上: memcached提供的每项主要功能及其优势,都是Redis功能和特性的子集。任何用例中可能使用Memcached的地方都可以对等的使用Redis,Memcached提供的只是Redis拥有功能的冰山一角。

1. 当缓存相对较小和使用静态的数据时候,比如HTML代码片段,Memcached可能更为可取。Memcached内部的内存管理在最简单的用例中更为有效,因为它的元数据消耗相对更少的内存资源。

2. 当数据尺寸是动态的时候,Memcached的内存管理效率下降的很快,此时Memcached的内存会变成碎片。而且,大的数据集经常牵扯到数据序列化,总是需要更多的空间来存储。如果你使用Memcached,数据会随着重启动而丢失,重建缓存是个代价高昂的过程。

3. Memcached比Redis更具优势的另一个场景在伸缩性。因为Memcached是多线程的,所以你可以通过给它更多计算资源让它轻松扩展。Redis是单线程的,可以通过集群无损水平扩展。集群是一个有效的扩展方案,但是相对来说配置、操作复杂。Memcached不支持复制功能(数据从一台机器自动复制到另外一台)。

4. Memcached 非常适合处理高流量的网站。它可以一次性读取大量的信息,并在优秀的反应时间内返回。Redis不但能处理高流量的读,还能处理繁重的写入。

Redis,Memcache比较的更多相关文章

  1. 微擎开启redis memcache文档2

    微擎开启redis memcache 2018年01月20日 14:39:54 luogan129 阅读数:2161更多 个人分类: 微信开发   版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  2. 微擎开启redis memcache

    微擎开启redis memcache 2018年01月20日 14:39:54 luogan129 阅读数:2161更多 个人分类: 微信开发   版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  3. Redis.Memcache和MongoDB区别?

    Memcached的优势: Memcached可以利用多核优势,单吞吐量极高,可以达到几十万QPS(取决于Key.value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右.)适用 ...

  4. 缓存-redis+memCache

    缓存-redis+memCache:为方便预览,将思维导图上传至印象笔记,博客园直接上传图片受限于图片大小. https://app.yinxiang.com/shard/s24/nl/2726253 ...

  5. 大话redis/memcache缓存

    通常情况下,随着业务量增加,对后端数据库的访问压力也会随之加大.当数据库访问压力渐渐增大时,除了升级数据库配置提高数据库本身的抗压能力外,我们也可以采用在应用服务器与数据库服务器之间架设数据库缓存服务 ...

  6. Redis,Memcache,mongoDB的区别

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

  7. 关于mongodb ,redis,memcache

    先说我自己用的情况: 最先用的memcache ,用于键值对关系的服务器端缓存,用于存储一些常用的不是很大,但需要快速反应的数据 然后,在另一个地方,要用到redis,然后就去研究了下redis. 一 ...

  8. redis memcache

    谈谈Memcached与Redis(一) 1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高 ...

  9. 使用python操作RabbitMQ,Redis,Memcache,SQLAlchemy 其二

    一.概念 1.Memcached     Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态 ...

  10. 使用python操作RabbitMQ,Redis,Memcache,SQLAlchemy 其一

    一.概念 1.Memcached     Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态 ...

随机推荐

  1. g++编译

    命令: otool -L xx.lib 查看mac os 动态库依赖的包 ldd xx.so 查看linux动态库依赖的包 c++打包动态库java调用,mac上没问题到linux上就是不行,g++命 ...

  2. python 读csv文件对列名进行合法性验证

    如果正在读取CSV 数据并将它们转换为命名元组,需要注意对列名进行合法性认证.例如,一个CSV 格式文件有一个包含非法标识符的列头行,这样最终会导致在创建一个命名元组时产生一个ValueError 异 ...

  3. Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]

    1.问题场景描述:一个maven项目启动时候,偶尔会报tomcat的这个错误(如图:) 随机报错,有时频率很高,要一直重新启动很多次可能还是启动不了,有时不报错.. 2.解决过程:网上各种寻找解决办法 ...

  4. docker rmi 导致后面的命令不执行问题 Dockerfile设置时区问题

    docker rmi 导致后面的命令不执行问题 把ca=`docker rmi sendemail-service` echo $ca改成docker rmi sendemail-service -f ...

  5. js中利用cookie实现记住密码功能

    在登录界面添加记住密码功能,代码如下: //设置cookie var passKey = '4c05c54d952b11e691d76c0b843ea7f9'; function setCookie( ...

  6. What Would you Find out about MS908CV ?

    The Autel MaxiSYS commercial car diagnostics scan device, No. MS908CV, performs increased technique ...

  7. System.map文件的作用解析

    有关System.map文件的信息好象很缺乏.其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要.但是由于缺乏必要的文档说明,使其显得比较神秘.它就象耳垂,我们每个人都有,但却不知道是干什 ...

  8. bind的封装

    1.bind.call.apply三者的区别: 1)bind的返回值是一个函数体,不会被立即调用 2)call.apply会立即调用,第一个参数都是用来改变this的指向,两者的区别是前者传递参数的时 ...

  9. multer中间件

    1.Multer是node.js的一个中间件,用于处理multipart/form-data类型的表单数据,它主要用于上传文件.(Multer不会处理任何非multipart/form-data类型的 ...

  10. Talented Chef ZOJ - 3778

    As we all know, Coach Gao is a talented chef, because he is able to cook M dishes in the same time. ...