Resumen de uso y aprendizaje de caché de ehcache

Resumen de uso y aprendizaje de caché de ehcache

1. Configuración de caché

name: nombre de la caché.

maxElementsInMemory: el número máximo de cachés.

eterna: si el objeto es válido permanentemente, una vez que se establece, el tiempo de espera no funcionará.

timeToIdleSeconds: establezca el tiempo de inactividad permitido (unidad: segundos) del objeto antes de que deje de ser válido. Solo se usa cuando el objeto eterno = falso no es válido permanentemente, un atributo opcional, el valor predeterminado es 0, es decir, el tiempo de inactividad es infinito.

timeToLiveSeconds: establece el tiempo de supervivencia permitido (unidad: segundos) del objeto antes de que expire. El tiempo máximo es entre el tiempo de creación y el tiempo de vencimiento. Se usa solo cuando el objeto eterno = falso no es válido permanentemente, el valor predeterminado es 0. Es decir, la vida útil del objeto es infinita.

overflowToDisk: cuando el número de objetos en la memoria alcanza maxElementsInMemory, Ehcache escribirá los objetos en el disco.

diskSpoolBufferSizeMB: este parámetro establece el tamaño del búfer de DiskStore (caché de disco). El valor predeterminado es 30 MB. Cada caché debe tener su propio búfer.

maxElementsOnDisk: el número máximo de cachés de disco duro.

diskPersistent: si se almacenan datos en caché durante el período de reinicio de la máquina virtual. Si el almacenamiento en disco persiste entre reinicios de la máquina virtual. El valor predeterminado es falso.

diskExpiryThreadIntervalSeconds: el intervalo de ejecución de subprocesos de falla de disco, el valor predeterminado es 120 segundos.

memoryStoreEvictionPolicy: cuando se alcanza el límite de maxElementsInMemory, Ehcache limpiará la memoria de acuerdo con la política especificada. La estrategia predeterminada es LRU (la menos utilizada recientemente). Puede configurarlo en FIFO (primero en entrar, primero en salir) o LFU (menos utilizado).

clearOnFlush: si se borra cuando la cantidad de memoria es máxima.

2.archivo ehcache.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache updateCheck="false" name="hibernateCache">

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

    <!-- DefaultCache setting. -->
    <defaultCache maxEntriesLocalHeap="10000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
        overflowToDisk="true" maxEntriesLocalDisk="100000" />

</ehcache>

3.clase EhcacheUtil

public class EhcacheUtil {  

    private static final String path = "/ehcache.xml";  

    private URL url;  

    private CacheManager manager;  

    private static EhcacheUtil ehCache;  

    private EhcacheUtil(String path) {  
        url = getClass().getResource(path);  
        manager = CacheManager.create(url);  
    }  

    public static EhcacheUtil getInstance() {  
        if (ehCache== null) {  
            ehCache= new EhcacheUtil(path);  
        }  
        return ehCache;  
    }  

    public void put(String cacheName, String key, Object value) {  
        Cache cache = manager.getCache(cacheName);  
        Element element = new Element(key, value);  
        cache.put(element);  
    }  

    public Object get(String cacheName, String key) {  
        Cache cache = manager.getCache(cacheName);  
        Element element = cache.get(key);  
        return element == null ? null : element.getObjectValue();  
    }  

    public Cache get(String cacheName) {  
        return manager.getCache(cacheName);  
    }  

    public void remove(String cacheName, String key) {  
        Cache cache = manager.getCache(cacheName);  
        cache.remove(key);  
    }  

}

4 caché Spring + EhCache

<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="configLocation">
        <value>classpath:cache/ehcache-spring.xml</value>
    </property>
    <!-- 由于hibernate也使用了Ehcache, 保证双方都使用同一个缓存管理器 -->
    <property name="shared" value="true"/>
</bean> 

Supongo que te gusta

Origin blog.csdn.net/ampsycho/article/details/77750084
Recomendado
Clasificación