Ehcache3.x 缓存过期时间Java配置demo

1.maven加入ehcache依赖
<dependency>
      <groupId>org.ehcache</groupId>
      <artifactId>ehcache</artifactId>
      <version>3.3.0</version>
</dependency>


2.demo案例
 
import java.util.concurrent.TimeUnit;

import org.ehcache.Cache;
import org.ehcache.CacheManager;
import org.ehcache.config.CacheConfiguration;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;
import org.ehcache.expiry.Duration;
import org.ehcache.expiry.Expirations;

public class EcacheTest {

    public static void main(String[] args) {
        // 构建一个缓存管理器
        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder().build(true);
        // cacheManager.init();
        // cacheConfiguration -100个换成最大,缓存过期时间4秒
        CacheConfiguration<String, String> cacheConfiguration = CacheConfigurationBuilder
                .newCacheConfigurationBuilder(String.class, String.class, ResourcePoolsBuilder.heap(100))
                .withExpiry(Expirations.timeToLiveExpiration(Duration.of(4, TimeUnit.SECONDS))).build();
        // 根据配置创建一个缓存容器
        Cache<String, String> myCache = cacheManager.createCache("myCache", cacheConfiguration);
        // 设置一个值
        myCache.put("testKey", "testValue");
        // 循环直到数据过期 否包含该key
        while (myCache.containsKey("testKey")) {
            try {
                System.out.println("值:" + myCache.get("testKey"));
                Thread.sleep(2000);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        System.out.println("缓存已过期");
        cacheManager.close();

    }

}


 
暂无评论