2012-12-25 13 views
14

Vorrei utilizzare il caching nella mia applicazione web, che sarà scalabile e distribuito.Hibernate EHCache vs MemCache

Ho usato EHCache e MemCache entrambi in applicazioni Web small-small separatamente.

Sono stati sottoposti a google e abbiamo ottenuto recensioni contrastanti su entrambi, quindi vorrei ricevere aiuto e funzionalità avanzate di ciascuno, quindi posso decidere quale framework è adatto per la mia applicazione web.

Fatemi sapere se occorrono ulteriori dettagli.

Grazie !!

risposta

14

EHCache è molto facile da integrare con le applicazioni di Hibernate (app Web che utilizzano Hibernate come ORM back-end). Puoi anche importarlo come artefatto separato e fare cose in modo programmatico, ad esempio aggiungere dati a una cache denominata con un periodo di scadenza specificato o un numero di oggetti massimi o una dimensione.

Memcached non è facilmente integrabile con le applicazioni di ibernazione, ma in pratica fornisce quasi la stessa API per l'accesso programmatico come EHCache.

Per quanto riguarda le prestazioni, i risultati varieranno anche in base all'architettura e all'utilizzo della cache.

In conclusione, quando si sceglie una cache, se si utilizza in modo standard, è solo una questione di preferenza quale cache si sta per scegliere. Personalmente, sceglierei EHCache perché ho molta più esperienza con esso.

Esiste anche una cache distribuita da JBoss (come nella cache condivisa da un cluster di macchine) in cui la sincronizzazione viene gestita internamente e l'API è molto simile a EHCache. Si chiama Infinispan ed è anche relativamente facile da configurare e utilizzare.

EDIT:

Come una forte caratteristica di EHCache, vorrei elencare l'integrazione come una cache di secondo livello per Hibernate. Inoltre, configurare una cache in modo programmatico è molto semplice e di stile Java.

Forse è anche una buona idea farvi riferimento per un confronto delle prestazioni. Ricorda che è antico, quindi forse non è aggiornato. http://gregluck.com/blog/archives/2007/05/comparing-memcached-and-ehcache-performance/

+1

Puoi condividere la tua esperienza di utilizzo di EHCache vs MemCached con app scalabili con clustering? –

+1

Ho usato solo EHCache in un cluster virtuale di Rackspace. La cosa importante da notare qui è che la cache non è condivisa. Ogni macchina ha una propria cache. Se questo è OK per la tua architettura, allora usa Memcached o EHcache. Ho usato Memcached solo per piccoli progetti, quindi non ho una conoscenza approfondita o esperienza con esso, ma mi è sembrato più o meno lo stesso. –

+0

suona bene, grazie !! –