Mi granito de java: EhCache

miércoles, 15 de junio de 2011

EhCache

EhCache es un cache open source, basado en standards, escalable, robusto, performante y basado en java. Es mantenido por Terracota, quien como un plus provee un servidor adicional para mejorar la performance del cache. Se puede bajar de http://ehcache.org.

Sus características principales son:
  • Rápido y simple de usar.
  • Pequeño (menos de 700 kb) y con pocas dependencias.
  • Escalable: permite, por un lado, escribir a disco y, por otro, trabajar con muchos caches en paralelo.
  • Flexible: permite trabajar con Objects o Serializables y configurarlo mediante xml o programaticamente.
  • Extensible: se pueden adicionar plug-ins, loaders, listeners, JMX y exceptions handlers. Trabaja con varias APIs como JTA o frameworks como Hibernate.
  • Distribuído: posee muchas opciones de replicación de los datos.
  • Cache Server: permite agregarle servidores standalone (o un war, en su defecto).


Como funciona.

Es muy sencillo de utilizar. El API nos provee diversas formas de crear un cache y la más sencilla es simplemente pasando un parámetro String con el nombre del cache a un método (addCache) de la clase CacheManager.


Veremos los métodos de colocación/obtención de datos del cache. Como se observa hay que crear un nuevo objeto Element por cada entrada. Esto mucho no me gusta, pero la realidad es que lo hace de manera muy rápida.



Datos útiles.

Para enviar datos a disco el cache ofrece el método flush(). Para saber el estado general del cache nos ofrece varios métodos que nos dan diversa información. Los más usados son:



¿Que más nos ofrece EhCache?

Se puede configurar de diversas maneras para su mejor performance. Un link interesante para ello se ofrece en la página oficial: http://ehcache.org/documentation/offheap_store.html
También posee un API que nos permite buscar datos en el cache, lo cual puede resultarnos muy útil: http://ehcache.org/documentation/search.html verán que el API es muy parecido al Criteria de Hibernate.

No hay comentarios: