tutorial de caché ehchace integrado springboot

Introducción a ehcaché

Ehcache es un marco de almacenamiento en caché de Java de código abierto y alto rendimiento que se usa ampliamente en muchos sistemas distribuidos a gran escala y de alta concurrencia. Proporciona una solución de almacenamiento en caché de datos rápida, escalable y distribuida que admite varios cachés a nivel de memoria, cachés a nivel de disco y cachés distribuidos.
Los objetivos de diseño de Ehcache son principalmente proporcionar un alto rendimiento y escalabilidad. Sus principales ventajas incluyen:

  • 1. Alto rendimiento: Ehcache utiliza memoria y almacenamiento híbrido en disco, admite múltiples estrategias de almacenamiento, puede maximizar el uso de los recursos del sistema y mejorar la velocidad de acceso a la memoria caché.
  • 2. Escalabilidad: Ehcache admite el almacenamiento en caché distribuido. Puede realizar la replicación o fragmentación de datos en caché a través de la implementación de múltiples nodos. Admite equilibrio de carga múltiple, recuperación de fallas, procesamiento tolerante a fallas y otros mecanismos, lo que hace que todo el sistema de caché sea altamente disponible y escalable escalabilidad
  • 3. Facilidad de uso: Ehcache proporciona un conjunto de interfaces API fáciles de usar, que pueden realizar fácilmente operaciones como lectura, escritura y eliminación de datos almacenados en caché, y también proporciona muchas herramientas de administración y monitoreo en tiempo de ejecución.


En resumen, Ehcache es un marco de caché distribuido maduro y confiable, que es adecuado para escenarios de caché distribuidos a gran escala y de alta simultaneidad.

tutorial

Primero, debe agregar las dependencias de Ehcache. Puede agregar el siguiente contenido al archivo pom.xml:

<dependency>
   <groupId>net.sf.ehcache</groupId>
   <artifactId>ehcache</artifactId>
   <version>2.9.3</version>
</dependency>

Luego debe configurar Ehcache en el archivo de configuración application.properties:

# Ehcache配置
spring.cache.type=ehcache
spring.cache.ehcache.config=classpath:ehcache.xml

 

 

Luego cree el archivo de configuración ehcache.xml y defina el nombre del caché y sus propiedades en él:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         updateCheck="false">

    <diskStore path="java.io.tmpdir/ehcache" />

    <cache name="users"
           maxEntriesLocalHeap="10000"
           maxEntriesLocalDisk="100000"
           eternal="false"
           diskSpoolBufferSizeMB="20"
           timeToIdleSeconds="300" />

    <cache name="books"
           maxEntriesLocalHeap="1000"
           maxEntriesLocalDisk="10000"
           eternal="false"
           diskSpoolBufferSizeMB="30"
           timeToIdleSeconds="600" />
</ehcache>

Instrucciones de configuración:

<!-- ruta de diskStore: Ubicación de caché de disco -->

<!-- maxEntriesLocalHeap: el número máximo de objetos almacenados en caché en la memoria del montón, 0 no tiene límite -->

<!-- maxElementsInMemory: el número máximo de elementos en caché en la memoria. -->

<!-- eterno: Si los elementos son permanentemente válidos, si es verdadero, se ignorarán los tiempos de espera, el elemento nunca caducará -->

<!-- timeToIdleSeconds: Tiempo de inactividad, es decir, si no hay acceso dentro del tiempo especificado, el caché será invalidado, este atributo solo es válido cuando eterno es falso, y 0 es ilimitado -->

<!-- timeToLiveSeconds: el tiempo de supervivencia, que se calcula desde el momento en que se coloca en el caché, y el caché se invalidará dentro del tiempo especificado. Esta propiedad solo es válida cuando eterno es falso y 0 es ilimitado -- > <!-- overflowToDisk: si los datos en la memoria exceden el límite de memoria, ¿desea almacenarlos en caché en el disco -->

<!-- estadísticas: si recopilar estadísticas. Si necesita monitorear el uso de caché, debe activar esta opción. El valor predeterminado es desactivado (las estadísticas afectan el rendimiento). Establezca estadísticas = "verdadero" para habilitar estadísticas -->

 

En la clase que necesita usar el caché, puede usar la anotación @Cacheable de Spring para definir las propiedades de caché del método:

@Cacheable(value = "users", key = "#id")
public User getUserById(int id) {
    // ...
}

@CacheEvict(value = "user",allEntries = true)
public User updateUserById(User user) {
    // ...
}

De esta forma, el valor de retorno se puede almacenar en caché cuando se ejecuta el método, y cuando se solicita el mismo valor la próxima vez, se puede obtener directamente del caché sin ejecutar el método.

Además, hay otras anotaciones como @CachePut, @CacheEvict, @Caching, etc. Para conocer los métodos de uso específicos, consulte la documentación de Spring.

Finalmente, el administrador de caché se puede obtener de las siguientes maneras y su API se puede usar para operaciones de caché:

@Autowired
private CacheManager cacheManager;

public void testCache() {
    Cache users = cacheManager.getCache("users");
    users.put("1", new User("jack", 18));
    User user = users.get("1", User.class);
}

Supongo que te gusta

Origin blog.csdn.net/weixin_40986713/article/details/130499935
Recomendado
Clasificación