Get it on Google Play

Formación Liferay: Cache en desarrollos Liferay

21-03-2013
 

En el diseño de cualquier portal de alto rendimiento necesitamos gestionar una caché que nos permita minimizar el acceso a los recursos que consumimos. Lo que es inaceptable, es que cada vez que cargamos un menú tengamos que leer de la base de datos las diferentes opciones. Entonces, en el desarrollo de portales de alto rendimiento hay que proveer siempre de una cache.

Cache image

Para hacer esto el API de Liferay nos provee de dos clases: “SingleVMPoolUtil” para gestionar la cache del portal y “MultiVMPoolUtil” para gestionar la cache de todo el cluster de servidores. Queda a la discreción del desarrollador utilizar una o otra(Tienen la misma estructura de métodos).

Básicamente tenemos las siguientes opciones:

clear(String name) : Para limpiar todos los elementos del tipo ‘name’.

get(String name, String key) : Para obtener en la caché un elemento del tipo ‘name’ con identificador ‘key’. En caso de no encontrar devolverá null. Además tiene un parámetro mas que nos permite bloquear el elemento de la cache(Por si lo vamos a actualizar).

put(String name, String key, Object value) : Para insertar en la caché un elemento ‘value’ del tipo ‘name’ con identificador ‘key’.

remove(String name, String key) : Para eliminar de la caché un elemento del tipo ‘name’ con identificador ‘key’.

Conclusiones

La gestión de la cache de Liferay resulta sencilla y potente ya que también tiene en cuenta el cluster de servidores, cosa que habla mucho de la potencia real de Liferay.

La crítica constructiva es que en mis proyectos uso una caché, que además, tiene en cuenta el expirado de elementos por tiempo o por tamaño de la cache. De esta manera la caché no podrá nunca aumentar indefinidamente. Además, si el contenido de la cache expira nos permite estar tranquilos, que si los datos cambian se volverán a leer automáticamente al cabo de X tiempo, sino tienes el peligro de tener datos antiguos en la caché.

Interesado en formación Liferay?

 

Leave a Reply

© Albert Coronado Calzada