A continuación se proporciona una lista de recomendaciones sobre cómo debe utilizarse una memoria caché global:
- Sólo almacene en memoria caché objetos inmutables.
- Utilice claves y valores serializables siempre que sea posible. Como mínimo, las claves deben ser serializables.
- Utilice un cargador de memoria caché para llenar la memoria caché. Esto permite que la memoria caché se beneficie de las optimizaciones en la simultaneidad de grano fino incorporadas en el proveedor de memoria caché y no es necesario que el usuario se preocupe de gestionar el acceso simultáneo a la memoria caché.
- La carga de una memoria caché sin un cargador (utilizando las llamadas de get() y put()) debe evitarse por dos motivos principales:
- Gestión de la simultaneidad - En este caso, el usuario es responsable de gestionar el acceso simultáneo a la memoria caché mientras de carga la memoria caché. El usuario tiene dos opciones:
- Controlar el acceso simultáneo al bloque de código de get() y put() – este método no es recomendable en una parte sensible al rendimiento de la aplicación pero proporciona la garantía de que un objeto sólo se carga una vez.
- Permitir el acceso simultáneo al bloque de código de get() y put() – este método da soporte a una mayor simultaneidad pero un objeto se puede cargar más de una vez por parte de diferentes hebras.
- Gestión de datos eficaz - sin un cargador de memoria caché, la memoria caché debe llenarse previamente con todos los datos. Con un cargador de memoria caché, sólo se llena la memoria caché con los datos necesarios.
- Utilice nombres de memoria caché que tengan como prefijo un nombre de paquete exclusivo de su proyecto. Por ejemplo, curam.cpm.myCache sería un nombre adecuado para una memoria caché en el proyecto de Curam Provider Management™.