得意淡然,失意坦然;喜而不狂,忧而不伤。

Memcached和Redis对比和适用场景

Cache admin 678次浏览 已收录 0个评论 扫描二维码

 

非原创,转自网络

 

关于memcached和redis的使用场景,根据大神们的讨论和我在网上查到的资料,总结一下:

 

两者对比:

 

redis提供数据持久化功能,memcached无持久化;

redis的数据结构比memcached要丰富,能完成场景以外的事情;

memcached的单个key限制在250B,value限制在1MB;redis的K、V都为512MB;当然这些值可以在源码中修改;

memcached数据回收基于LRU算法,Redis提供了多种回收策略(包含LRU),但是redis的回收策的过期逻辑不可依赖,没法根据是否存在一个key判断是否过期。但是可根据ttl返回值判断是否过期;

memcached使用多线程,而redis使用单线程,基于IO多路复用实现高速访问。所以可以理解为在极端情况下memcached的吞吐大于redis。redis hgetall的坑大家可以去网上查查。

结论:

 

普通KV场景:memcached、redis都可以。

从功能模块单一这个角度考虑的话,推荐memcached,只做cache一件事。

在KV长度偏大、数据结构复杂(比如取某个value的一段数据)、需要持久化的情况下,用redis更适合:但是在使用redis的时候单个请求的阻塞会导致后续请求的积压,需要注意

代码库

 

memcached: 

https://github.com/memcached/memcached/blob/master

redis代码库: 

https://github.com/antirez/redis


pitata技术乐园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Memcached和Redis对比和适用场景
喜欢 (0)
[103531948@qq.com]
分享 (0)
发表我的评论
取消评论
表情 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址