Diferencia entre revisiones de «EhCache»

De Dos Ideas.
Saltar a: navegación, buscar
(Página nueva: EhCache es uno de los frameworks más utilizados para el Cache De Objetos Java. En general, EhCache consta de "regiones de cache" en donde se ubican objetos. Estas regiones se co...)
 
(Ver también)
 
(No se muestran 5 ediciones intermedias de 2 usuarios)
Línea 7: Línea 7:
  
 
===Archivo de configuración ehcache.xml===
 
===Archivo de configuración ehcache.xml===
El archivo ehcache.xml tiene que residir en la raiz del classpath. A dicho archivo el agregaremos un región llamada "dosIdeas". Esta región mantendrá los elementos durante 1 segundo, y luego serán borrados de la región (atributo ''timeToLiveSeconds'').
+
El archivo ''ehcache.xml'' tiene que residir en la raiz del classpath. En la raiz del jar de ehcache hay un archivo de configuración de ejemplo (ehcache-failsafe.xml), que tiene configurada una región predeterminada. Podemos copiar este archivo a nuestro proyecto y renombrarlo como ''ehcache.xml''. A dicho archivo el agregaremos un región llamada "dosIdeas". Esta región mantendrá los elementos durante 1 segundo, y luego serán borrados de la región (atributo ''timeToLiveSeconds'').
 
+
<code xml>
 
     <cache name="dosIdeas"
 
     <cache name="dosIdeas"
 
           maxElementsInMemory="10000"
 
           maxElementsInMemory="10000"
Línea 18: Línea 18:
 
           memoryStoreEvictionPolicy="LFU"
 
           memoryStoreEvictionPolicy="LFU"
 
             />
 
             />
 +
</code>
  
 
===Accediendo al caché===
 
===Accediendo al caché===
 
Subiremos un elemento al cache, y luego lo recuperaremos. Por último, esperaremos unos segundos y veremos cómo al volver a recuperar el objeto, el mismo no está más. Este método se ejecuta dentro de un test de [[JUnit]]
 
Subiremos un elemento al cache, y luego lo recuperaremos. Por último, esperaremos unos segundos y veremos cómo al volver a recuperar el objeto, el mismo no está más. Este método se ejecuta dentro de un test de [[JUnit]]
  
<pre>
+
<code java>
 
     @Test
 
     @Test
 
     public void testCache() throws InterruptedException {
 
     public void testCache() throws InterruptedException {
Línea 46: Línea 47:
 
         assertNull(cache.get(persona.getId()));
 
         assertNull(cache.get(persona.getId()));
 
     }
 
     }
</pre>
+
</code>
  
 
== Ver también ==
 
== Ver también ==
 +
* [[EhCache Con Spring]]
 
* [http://ehcache.sourceforge.net/ Web oficial de EhCache]
 
* [http://ehcache.sourceforge.net/ Web oficial de EhCache]
 +
* [http://www.dosideas.com/wiki/Interceptores,_Ehcache_y_Oval#Ver_tambi.C3.A9n Interceptores, Ehcache y Oval]
 +
 +
[[Category:EhCache]]
 +
[[Category:Performance]]

Revisión actual del 15:06 8 abr 2010

EhCache es uno de los frameworks más utilizados para el Cache De Objetos Java.

En general, EhCache consta de "regiones de cache" en donde se ubican objetos. Estas regiones se configuran en un archivo XML para determinar el tiempo de expiración, cantidad máxima de elementos, etc.

Ejemplo

Crearemos una región de cache llamada "dosIdeas". Luego, veremos cómo subir un objeto a dicha región, y cómo recuperarlo.

Archivo de configuración ehcache.xml

El archivo ehcache.xml tiene que residir en la raiz del classpath. En la raiz del jar de ehcache hay un archivo de configuración de ejemplo (ehcache-failsafe.xml), que tiene configurada una región predeterminada. Podemos copiar este archivo a nuestro proyecto y renombrarlo como ehcache.xml. A dicho archivo el agregaremos un región llamada "dosIdeas". Esta región mantendrá los elementos durante 1 segundo, y luego serán borrados de la región (atributo timeToLiveSeconds).

   <cache name="dosIdeas"
          maxElementsInMemory="10000"
          maxElementsOnDisk="1000"
          eternal="false"
          overflowToDisk="true"
          timeToIdleSeconds="300"
          timeToLiveSeconds="1"
          memoryStoreEvictionPolicy="LFU"
           />

Accediendo al caché

Subiremos un elemento al cache, y luego lo recuperaremos. Por último, esperaremos unos segundos y veremos cómo al volver a recuperar el objeto, el mismo no está más. Este método se ejecuta dentro de un test de JUnit

   @Test
   public void testCache() throws InterruptedException {
       Persona persona = new Persona();
       persona.setId("1");
       persona.setNombre("Zim");
       CacheManager manager = new CacheManager();
       Cache cache = manager.getCache("dosIdeas");
       //al cache se suben objetos Element. Un element consta de una clave y un valor.
       //La clave sera el medio para recuperar el objeto mas tarde. En el ejemplo, el "id" de la Persona.
       Element element = new Element(persona.getId(), persona);
       cache.put(element);
       Persona personaCache = (Persona) cache.get(persona.getId()).getObjectValue();
       assertEquals(persona, personaCache);
       //esperamos unos instantes para que expire el cache...
       Thread.sleep(1500);
       assertNull(cache.get(persona.getId()));
   }

Ver también