前面的文章两篇文章聊聊Redis是如何做到“持久化”和[ 分布式缓存中间件Redis入门](分布式缓存中间件Redis入门 (qq.com))主要介绍了分布式缓存系统——redis。作为缓存系统的还有Memcached,今天就来说说这两个缓存系统有什么区别。
1、Memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。由于许多的Web应用都将数据保存到 RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。Memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,通过在内存中缓存数据和对象来减少数据库访问次数,从而提高动态Web等应用的速度、 提高可扩展性。
2、Redis
Redis则是一个key-value存储系统,它支持存储的value类型:包括string(字符串)、 list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。关于redis的更多内容具体的可以参考文章 分布式缓存中间件Redis入门
3、区别
存储方式:Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。Redis有部份存在硬盘上,redis可以持久化其数据。
数据支持类型:memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 ,提供list,set,zset,hash等数据结构的存储。
使用底层模型不同:它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
value 值大小不同:Redis 最大可以达到 1gb;memcache 只有 1mb。
速度:redis的速度比memcached快很多
Redis支持数据的备份,即master-slave模式的数据备份 。
架构层次:Redis 支持主从模式应用,memcache 支持分布式。
结尾
本文主要对分布式缓存系统Memecache和redis做一个简单的介绍和总结。如果有不正确的地方欢迎指正!