EhCache

De Dos Ideas.
Revisión del 15:07 27 jul 2008 de Admin (discusión | contribuciones) (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...)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

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. 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