为什么memcached和redis如此流行? 不仅是其具有超高的性能,还因为相对来说他们都非常简单。 对程序员来说上手使用memcached或redis相当容易。 安装和设置并集成到系统中可能只需要几分钟时间。 因此花费一点点时间和精力就能立刻大幅提升系统性能 —— 通常是提升一个数量级。 一个简洁的解决方案却能获得巨大的性能收益。
memcached还是redis? 在现代高性能web应用中这一直是个争论不休的话题。 在基于关系型数据库的web应用需要提高性能时,使用缓存是绝大多数架构师的第一选择,自然,memcached和redis通常是优先选择。redis和memcached都是基于内存key-value的数据存储系统。两者都可以通过缓存数据结果,html片段或其他可能产生成本很高的内容来帮助加快应用程序的速度。
与memcached类似,redis将大部分数据存储在内存中,支持的数据类型包括:字符串、哈希表、链表、集合、有序集合以及基于这些数据类型的相关操作。那么,memcached与redis有什么区别呢?让我们一起来看一下。
memcache与redis的区别都有哪些?
1)、存储方式
memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。
redis有部份存在硬盘上,这样能保证数据的持久性。
使用简单的key-value存储的话,memcached的内存利用率更高,而如果redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于memcached。
2)、数据支持类型
memcache对数据类型支持相对简单。
redis有复杂的数据类型。
3)、使用底层模型不同
它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。
redis直接自己构建了vm 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
4)、value大小
redis最大可以达到1gb,而memcache只有1mb
redis相比memcached有哪些优势?
(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
(2) redis的速度比memcached快很多
(3) redis可以持久化其数据
使用redis有哪些好处?
(1) 速度快,因为数据存在内存中,类似于hashmap,hashmap的优势就是查找和操作的时间复杂度都是o(1)
(2) 支持丰富数据类型,支持string,list,set,sorted set,hash
(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
与memcached相比,redis功能更强大,更受欢迎并且得到更好的支持。即使redis的功能重叠,redis也更好。redis可以完成与memcached相同的工作,并且可以做得更好。redis是新兴的通用存储系统,而memcached仍有其适用领域。
发表评论