Memcache和Redis区别
2015-07-03 11:27
549 查看
2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3、虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘
4、过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10
5、分布式--设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从
6、存储数据安全--memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化)
7、灾难恢复--memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复
memcache官方定义
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.
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.
版权相同
它们都是使用的bsd协议,使用它的项目可以用于商业用户,不必发布二次修改的代码,可以修改源代码。
数据类型
redis数据类型丰富,支持set liset等类型
memcache支持简单数据类型,需要客户端自己处理复制对象
持久性
redis支持数据落地持久化存储
memcache不支持数据持久存储
分布式存储
redis支持master-slave复制模式
memcache可以使用一致性hash做分布式
value大小不同
memcache是一个内存缓存,key的长度小于250字符,单个item存储要小于1M,不适合虚拟机使用
数据一致性不同
redis使用的是单线程模型,保证了数据按顺序提交。
memcache需要使用cas保证数据一致性。CAS(Check and Set)是一个确保并发一致性的机制,属于“乐观锁”范畴;原理很简单:拿版本号,操作,对比版本号,如果一致就操作,不一致就放弃任何操作
cpu利用
redis单线程模型只能使用一个cpu,可以开启多个redis进程
参考
http://my.oschina.net/seava/blog/228519 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
Memcache基础教程 http://www.ccvita.com/259.html
redis;mongodb;memcache三者的性能比較 /article/4730024.html
相关文章推荐
- memcached调用示意图
- Memcached在.net中的应用
- Memcached在.net中的应用
- Tomcat基于MSM+Memcached实现Session共享
- Nginx+Memcached+Tomcat集群配置
- 分布式缓存系统Memcached在Asp.net下的应用
- Memcached初步使用
- memcached安装
- memcached与spring整合、测试
- 全面解析windows下Memcache技术应用
- python 使用memcached
- Redis 与 Memcached 区别
- .net使用memcached
- MEMCACHED WITH SASL(INCLUDE SERVER)
- memcached分布式缓存
- (转)ASP.NET下运用Memcached建立大型WEB解决方案的运用
- Java中使用memcached
- 对Memcached使用的总结和使用场景
- Memcache应用场景介绍
- Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解