A. Breve
1. implementado en Java con un simple, de alta velocidad, las bibliotecas compatibles con el proceso de gestión de caché;
2. evolucionaron de Hibernate, cubriendo todas sus funciones;
3. Uno de los más rápidos caché de Java puede ser utilizado para grandes sistemas concurrentes altas, API es fácil de usar;
4. Soporte amortiguadores LRU, LFU y FIFO y otras estrategias;
5. Hay dos niveles de caché de datos: Memoria y disco sin tener que preocuparse por problemas de capacidad;
6. Los datos en caché se escribe en disco en el proceso de reiniciar la máquina virtual;
7 a través de RMI, etc. pueden ser insertados en las cachés API distribuidos;
8. Con el socket de escucha: Administrador de caché oyentes CacheManagerEventListener y detectores de eventos caché CacheEventListener;
II. El uso Introducción
1. Una aplicación puede tener más CacheManager, puede haber una pluralidad de CacheManager Cache, una guardar un número de elemento de la caché interna, elemento A es un pares clave / valor almacenado;
2. La estructura principal
Caché de replicación: responsable de la sincronización de caché de varias implementaciones, incluyendo terracota, RMI, JMS y jgroup cuatro clases;
En-Proceso APIS: Foreign API comúnmente utilizados, incluyendo JRuby, Hibernate, JMX, SOAP API, servidor de caché cinco clases;
Red APIS: un protocolo de comunicación, hay API REST, SOAP API API JMX, y similares;
Ehcache Core: CacheManager comprende administrador de caché, caché, elemento, componente SOR puede tomar los datos reales;
3. política de almacenamiento en caché
FIFO: El tiempo de escritura de datos, el FIFO;
LUF: los menos utilizados, el elemento de aciertos de caché tiene una propiedad, se borrará el valor mínimo de la exitosa;
LRU: menos recientemente utilizado, se borrará el elemento de memoria cache usual de la marca de tiempo corriente en el elemento más alejado;
4. Perfiles ehcache.xml
Nombre: Cache de identificación único;
maxElementsInMemory: El número máximo de objetos en caché en la memoria;
maxElementsOnDisk: El número máximo de objeto de caché de disco, 0 representa el infinito;
eterna: Elemento ya sea permanente, después de ajustar el fracaso de tiempo de espera;
overflowToDisk: escribir en el disco cuando la memoria alcanza el número máximo de elementos;
timeToIdleSeconds: Conjunto de elementos de tiempo de inactividad permitido antes de la falla;
timeToLiveSeconds: Conjunto de elementos de supervivencia de tiempo permitido antes de la falla;
diskPersistent: si los datos de caché persistido en el disco, por defecto falsa;
disExpiryThreadIntervalSeconds: disco falla intervalos de ejecución hilo, los 120s por defecto;
diskSpoolBufferSizeMB: Ajuste el tamaño de la caché de disco, el 30 MB por defecto;
memoryStoreEvicitionPolicy: cuando el elemento alcanzará el límite especificado por la política a la memoria la limpieza;
El código simple
CacheManager = CacheManager.creat la CacheManager (); // para crear una instancia de la configuración predeterminada por métodos crear el Elemento Element = nuevo nuevo el elemento (clave, valor); // necesidad de amortiguar los datos de la caché Cache = cacheManager.getCache (cacheName); // valor cacheName archivo de configuración de caché de nombres cache.put (Element); // datos en la memoria caché Element = cache.get (Key); // obtener los datos de la memoria caché de datos Object element.getObjectValue = (); // obtiene los datos de la memoria caché Cache.Remove ( "llave"); // con la tecla de borrado de caché cache.replace ( nueva nueva ( "clave" Elemento "valor2")); // reemplazar la llave original del valor
6. La combinación de la primavera
@Cacheable: la adición de este método anotada representa la memoria caché, la primera vez que el método se llama los resultados almacenados en caché, y luego volver directamente acceder el resultado almacenado en caché, no se lleva a cabo el método de código;
Atributo: valor debe especificar al menos un valor del nombre de archivo de configuración de la caché;
preparado de acuerdo expresión clave SpEL, si la combinación de parámetros está vacía;
condición puede ser vacía, preparadas de otra forma de acuerdo con la expresión SpEL, sólo la caché es cierto;
@CachePut: Esta anotación propiedades y métodos de apoyo consistente con @Cacheable, pero sólo almacenar en caché los resultados del uso de, o el verdadero método de ejecución;
Propiedad: valor, clave; condición;
@CacheEvict: Vaciar caché
Propiedad: valor, clave; condición;
allEntries: si desea borrar todo el contenido de la memoria caché, el valor predeterminado es falso, si especifica cierto, la llamada al método borrará inmediatamente la caché;
beforeInvocation: antes de la liberación método de ejecución se vacía, el valor predeterminado es falso;
@CacheConfig: a nivel de clase de anotación, principalmente compartida caché de nombres;