---
title: "Hazelcast Cache Manager"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/2216832217/Hazelcast%20Cache%20Manager"
format: markdown
---
> Macro (toc)

# Introducción

El caché puede ser definido como una capa de almacenamiento de datos que se almacenan de forma temporal y que pueden ser recuperados a gran velocidad. De esta forma, en futuras peticiones, los datos pueden ser obtenidos de forma rápida y sencilla, incrementando la velocidad de procesos en programas activos.

Con el uso de cachés se obtienen ventajas:

- **Mejora en el rendimiento de aplicaciones**.
- **Reducción de costes**. Con bases de datos tradicionales y almacenamiento en discos, aumentar recursos no implica que mejore la latencia como lo hace el uso del caché.
- **Reducción de carga** en el back end.
- **Incremento en el rendimiento de lectura**, reducción de latencia y mucho mejor respuesta comparado con almacenamiento en disco.

Este ejemplo explica cómo usar la funcionalidad de Administrador Caché donde se almacenan diferentes tipos de datos como resultados de queries, peticiones y respuestas de APIs, páginas web e información de sesiones de ususarios entre otros.

Este servicio usa **Hazelcast**, un sistema de almacenamiento, el cual ayuda a gestionar los datos y distribuir el proceso de almacenamiento de memoria y la ejecución paralela. La distribución de arquitectura de Hazelcast proporciona redundancia para el tiempo de actividad continua de los clúster y disponibilidad de datos para servir a las aplicaciones más exigentes. La capacidad crece con la demanda, sin comprometer el rendimiento o la disponibilidad.

Uno de los usos que puede darse a la gestión de cachés es la creación de datos de un archivo o base de datos disponible desde una API. Simplemente con la lectura de los datos y su carga en el caché se puede tener acceso a ellos mediante diferentes endpoints.

# ¿Cómo crear una Caché?

Para esto, es necesario utilizar un rol con carácter de administrador e ir al menú: **Administración > Gestión de Caché**.

![image](media://5670463e-e89a-4217-bbdd-a20ae42e412d)

Una vez en el gestor de caché se hace click en “Nuevo”:

![image](media://aebfbbdf-6e6c-4246-b84a-8fea4632a945)

Para crear un nuevo caché es necesario indicar el nombre, tipo, política de tamaño máximo, tamaño y norma de exclusión.

![image](media://39cc4a0c-493b-4ca0-8f10-55f652e6375a)

Actualmente, el mapa de tipo caché es el único con soporte, las normas de máximo tamaño pueden ser:

- ***PER_NODE***: número máximo de entradas del mapa en cada miembro del clúster. Es la norma por defecto.
- ***PER_PARTITION***: número máximo de entradas del mapa dentro de cada partición.
- ***USED_HEAP_SIZE***: máximo tamaño, en megabytes, usado en la pila por cada instancia del mapa.
- ***USED_HEAP_PERCENTAGE***: máximo tamaño usado en la pila, en porcentaje, por cada instancia del mapa.
- ***FREE_HEAP_SIZE***: mínimo tamaño libre en la pila, en megabytes, por cada JVM.
- ***FREE_HEAP_PERCENTAGE***: mínimo tamaño libre en la pila, en porcentaje, por cada JVM.
- ***USED_NATIVE_MEMORY_SIZE***: máxima memoria nativa usada en megabytes por mapa para cada instancia.
- ***USED_NATIVE_MEMORY_PERCENTAGE***: máxima memoria nativa usada en porcentaje por mapa para cada instancia.
- ***FREE_NATIVE_MEMORY_SIZE***: mínima memoria nativa libre en megabytes por cada instancia.
- ***FREE_NATIVE_MEMORY_PERCENTAGE***: mínima memoria nativa libre en porcentaje por cada instancia.

Las normas de exclusión son:

- ***LRU***: menos usado recientemente.
- ***LFU***: menos usado con frecuencia.
- ***NONE***: en caso de elegir none, ningún objeto es excluido y la propiedad de máximo tamaño descrita es ignorada.
- ***RANDOM***


# REST API

Para trabajar con el caché es necesario conocer las especificaciones del API REST. Se puede acceder desde la sección de APIs de la plataforma ([https://lab.onesaitplatform.com/controlpanel/swagger-ui.html](https://lab.onesaitplatform.com/controlpanel/swagger-ui.html)).

![image](media://8ea3ecbe-4664-4d86-aadf-b7a1aa255b07)

Una vez el caché sea creado, la información puede ser insertada dentro mediante los dos últimos endpoints, introduciendo los pares clave-valor deseados. En este caso, se introducirán muchos valores al mismo tiempo para el mapa UserCache.

![image](media://3ad5db97-fb89-4052-8a14-da877659ef3d)

Posteriormente, la aplicación puede listar los datos con las operaciones de obtención, indicando el identificador de caché y las claves de los valores deseados. Si se quiere comprobar el usuario registrado en un día específico lo que tenemos que hacer es meter ese día como clave.

![image](media://d028d58b-181d-4a36-860c-1a0507ce4d85)

La respuesta que devuelve la petición es la siguiente:

Se utilizan diferentes métodos del API en caso de querer conocer todos los valores o solo uno, getAll y get/{key} respectivamente.

De esta forma se puede controlar los datos del caché, actualizándolos y consultándolos.

Para limpiar el caché lo único que se necesita es el identificador y todos los datos serán borrados.

![image](media://f40e3675-2796-44af-8326-ad6f71e4e65f)