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的,囧。
相關文章
相關標籤/搜索