Ehcache和MemCached比较分析

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

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

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

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

缓存过时移除策略 

LRU python

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

缺点 

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

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

优势 

简洁,灵活,全部支持socket的语言都能编写其客户端  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的,囧。
相关文章
相关标签/搜索