memcache官方定义html
Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.java
redis官方定义
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.web
版权相同redis
它们都是使用的bsd协议,使用它的项目能够用于商业用户,没必要发布二次修改的代码,能够修改源代码。缓存
数据类型并发
redis数据类型丰富,支持set liset等类型
memcache支持简单数据类型,须要客户端本身处理复制对象app
持久性分布式
redis支持数据落地持久化存储
memcache不支持数据持久存储spa
分布式存储.net
redis支持master-slave复制模式
memcache能够使用一致性hash作分布式
value大小不一样
memcache是一个内存缓存,key的长度小于250字符,单个item存储要小于1M,不适合虚拟机使用
数据一致性不一样
redis使用的是单线程模型,保证了数据按顺序提交。
memcache须要使用cas保证数据一致性。CAS(Check and Set)是一个确保并发一致性的机制,属于“乐观锁”范畴;原理很简单:拿版本号,操做,对比版本号,若是一致就操做,不一致就放弃任何操做
cpu利用
redis单线程模型只能使用一个cpu,能够开启多个redis进程
参考
http://www.cnblogs.com/qunshu/p/3196972.html
http://www.blogjava.net/chhbjh/archive/2012/02/21/370472.html
http://maoyidao.iteye.com/blog/1846089