总结一:

1.数据类型

Redis数据类型丰富,支持set list等类型

memcache支持简单数据类型,需要客户端自己处理复杂对象

2.持久性

redis支持数据落地持久化存储

memcache不支持数据持久存储

3.分布式存储

redis支持master-slave复制模式

memcache可以使用一致性hash做分布式

value大小不同

memcache是一个内存缓存,key的长度小于250字符,单个item存储要小于1M,不适合虚拟机使用

4.数据一致性不同

redis使用的是单线程模型,保证了数据按顺序提交。

memcache需要使用cas保证数据一致性。CAS(Check and Set)是一个确保并发一致性的机制,属于“乐观锁”范畴;原理很简单:拿版本号,操作,对比版本号,如果一致就操作,不一致就放弃任何操作

5.cpu利用

redis单线程模型只能使用一个cpu,可以开启多个redis进程

总结二:

1.Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。

2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。

3.Redis支持数据的备份,即master-slave模式的数据备份。

4.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

我个人认为最本质的不同是Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存

总结三:

redis和memecache的不同在于:

1、存储方式:

memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小

redis有部份存在硬盘上,这样能保证数据的持久性。

2、数据支持类型:

redis在数据支持上要比memecache多的多。

3、使用底层模型不同:

新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

4、运行环境不同:

redis目前官方只支持Linux 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁。但是没有放到主干上

memcache只能当做缓存,cache

redis的内容是可以落地的,就是说跟MongoDB有些类似,然后redis也可以作为缓存,并且可以设置master-slave

最新文章

  1. Openjudge 3.9-3339
  2. 10 Common Problems Causing Group Policy To Not Apply
  3. 微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同。
  4. bzoj3141: [Hnoi2013]旅行
  5. USB OTG ID 检测原理
  6. OpenCV中的SVM參数优化
  7. Maven之多模块打包成一个jar包及assembly
  8. vue插件编写与实战
  9. SpringBoot运行原理
  10. BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼 [矩阵乘法]
  11. 所使用的“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”版本高于所引用的程序集“EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的版本
  12. GLES2学习VBO和VAO的使用
  13. 2015 多校联赛 ——HDU5289(二分+ST)
  14. beego学习1
  15. python实战===教你用微信每天给女朋友说晚安【转】
  16. 使用JavaScript验证用户输入的是否为正整数
  17. NET的基本用法
  18. Oracle(2)之多表查询&子查询&集合运算
  19. SQL-14 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。 注意对于重复的emp_no进行忽略。
  20. 家庭记账本web开发

热门文章

  1. 表视图为Group类型的注意问题
  2. H3C 模拟器 pc与sw直连 登录web
  3. Python核心编程练习题
  4. 从内存上看python的对象
  5. core python
  6. python爬虫概述
  7. Column常用的参数
  8. 一个SQL注释引发的线上问题
  9. ASP.NET Core中使用EasyCaching作为缓存抽象层
  10. RuntimeError: Model class user.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.