项目 Memcache Ehcache
分布式 不完全,集群默认不实现 支持
集群 可通过客户端实现 支持(默认是异步同步)
持久化 可通过第三方应用实现,如sina研发的memcachedb,将cache的数据保存到[url=]Berkerly DB[/url]

支持。持久化到本地硬盘,生成一个.data和.index文件。cache初始化时会自动查找这两个文件,将数据放入cache
效率 高于Memcache
容灾 可通过客户端实现。 支持
缓存数据方式

缓存在memcached server向系统申请的内存中

可以缓存在内存(JVM中),也可以缓存在硬盘。通过CacheManager管理cache。多个CacheManager可配置在一个JVM内,CacheManager可管理多个cache。

缓存过期移除策略

LRU

[url=]LRU([/url]默认),FIFO,LFU

缺点

功能不完善,相对于Ehcache效率低

只适用于java体系,只能用java编写客户端

优点

简洁,灵活,所有支持socket的语言都能编写其客户端

效率高。功能强大。

最近研究了一下缓存技术,主要比较了一下memcached和ehcache。
ehcache是纯java编写的,通信是通过RMI方式,适用于基于java技术的项目。
memcached服务器端是c编写的,客户端有多个语言的实现,如c,php(淘宝,sina等各大门户网站),python(豆瓣
网),java(Xmemcached,spymemcached)。memcached服务器端是使用文本或者二进制通信的。memcached的
python客户端没有开源,其他语言的好像都开源了。另外我以前不明白为什么各大互联网公司都是使用memcached缓存,后来我明白了原因:因为各
大门户网站以及淘宝是使用php编写的网站,memcached有php客户端,而ehcache是纯java的,囧。

Ehcache和MemCached比较分析的更多相关文章

  1. Memcached源代码分析 - Memcached源代码分析之消息回应(3)

    文章列表: <Memcached源代码分析 - Memcached源代码分析之基于Libevent的网络模型(1)> <Memcached源代码分析 - Memcached源代码分析 ...

  2. (转)Memcached深度分析

    转自:http://jwen.iteye.com/blog/1123991 memcached是高性能的分布式内存缓存服务器.一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态W ...

  3. Memcached深度分析

    Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能.关于这个东西,相信很多人都用过,本文意在通过对 ...

  4. Memcached 深度分析

    Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库 负载,提升性能.关于这个东西,相信很多人都用过,本文意在通过 ...

  5. Ehcache BlockingCache 源码分析

    BlockingCache是对Ehcache进行的扩展,BlockingCache内置了读写锁,不需要用户显示调用. 要彻底分析BlockingCache的原理,需要首先来看一下它内部用到的一些类. ...

  6. Ehcache和MemCached区别及应用

    ehcache是纯Java编写的,通信是通过RMI方式,适用于基于java技术的项目.memcached服务器端是c编写的,客户端有多个语言的实现,如c,PHP(淘宝,sina等各大门户网站),Pyt ...

  7. Memcached原理分析

    Memcached的内存管理方式 Memcached采用了名为Slab Allocation的机制分配,管理内存. Slab Allocation的原理相当简单.将分配的内存分割成各种尺寸的块(chu ...

  8. php模块memcache和memcached区别分析

    zm总结:尽量使用memcached就好了 1.目前大多数php环境里使用的都是不带d的memcache版本,这个版本出的比较早,是一个原生版本,完全在php框架内开发的.与之对应的带d的memcac ...

  9. memcached源代码分析-----set命令处理流程

    转载请注明出处:http://blog.csdn.net/luotuo44/article/details/44236591 前一篇博文以get命令为样例把整个处理流程简单讲述了一遍.本篇博文将以se ...

随机推荐

  1. 开源CMS的忠实粉丝——We7

    说到开源CMS这个词,首先来说一下什么是开源,因为很多人可能会存在一个误区,开源就是免费使用,其实不然.开源产品,从事软件开发的专业人士都很清楚,开源就是开发源码,是把一个软件的开发过程中的技术结构, ...

  2. seo 优化 仅针对 来拍呀www.laipaiya.com(一)

    加入百度统计代码:http://tongji.baidu.com/ 查看百度统计优化分析->seo建议 对每个页面的meta标签做修改 首页 title :来拍呀 - | 折扣好房你就来拍呀 k ...

  3. 约束的DEFERRABLE, NOT DEFERRABLE, INITIALLY IMMEDIATE 和 INITIALLY DEFERRED

    [ CONSTRAINT constraint_name ] { NOT NULL |   NULL |   CHECK ( expression ) [ NO INHERIT ] |   DEFAU ...

  4. XAML系列学习

    在XAML中为属性赋值 1.使用Attribute=value形式 <Rectangle Width="100" Height="100" Stroke= ...

  5. install window7

    install window7 http://www.zhujixc.com/win7home/http://jingyan.baidu.com/album/5bbb5a1b3e301713eba17 ...

  6. WPF系列

    一.ListView绑定数据源XML //前端代码 1 <Window x:Class="ListView读取XML数据.MainWindow" xmlns="ht ...

  7. Telerik RadGridView 右键菜单如何设置?

    问题: 我想去掉红线框住的部分,希望有会的网友帮助我,谢谢! 解决方法: 默认: 修改: [利用 ContextMenuOpening 事件,对应你的项目,你要自己修改那判断的字符串(你的中文)] p ...

  8. 1046-第K回文数

    描述 回文数是这样一个正整数:它从左往右读和从右往左读是一样的.例如1,111,121,505都是回文数.将1到100,000,000内所有回文数按从小到达排序后,第k个回文数是多少呢? 输入 第一行 ...

  9. ECNU1104-BFS

    简单的BFS题意:多起点多终点 /* 简单的BFS 题意:多起点多终点 */ #include<stdio.h> #include<string.h> #include< ...

  10. Android Activity的切换动画

    Android的Activity切换有两种方法, 第一种是用代码方式实现: Activity A跳转到Activity B,要在startActivity(intent)后面加上overridePen ...