您当前的位置: 首页 > 

梁云亮

暂无认证

  • 3浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Ehcache工具类

梁云亮 发布时间:2022-04-26 14:14:35 ,浏览量:3

Maven依赖

    org.ehcache
    ehcache
    3.10.0


    javax.cache
    cache-api
    1.1.1

工具类
public class EhcacheUtil {
       private static CacheManager manager;
    private static final  int HEAP_SIZE = 100;
    private static final int OFFHEAP_SIZE = 200;
    private static final  int EXPIRE_HOUR = 12;

    public static  Cache getCache(Class key, Class value,String cacheName ) {
        manager = CacheManagerBuilder.newCacheManagerBuilder()
                .build(true);

        //创建Cache实例
        CacheConfigurationBuilder builder = CacheConfigurationBuilder.newCacheConfigurationBuilder(key, value,
                ResourcePoolsBuilder.heap(HEAP_SIZE)  //堆内缓存,速度最快
                        .offheap(OFFHEAP_SIZE, MemoryUnit.MB)  // 堆外内存,速度低于 heap,但是高于 disk
                // .disk(1, MemoryUnit.GB)   //磁盘缓存,速度最低,相对于 heap和off-heap,disk可以分配大量资源空间
        ).withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofHours(EXPIRE_HOUR)));

        Cache cache = manager.createCache(cacheName, builder);
        return cache;

    }

    public static void release(String cacheName) {
        manager.removeCache(cacheName);
        //关闭资源
        manager.close();
    }

    public static void main(String[] args) {
        String cacheName  = Long.class.getName()+"_"+String.class.getSimpleName();
        Cache cache = EhcacheUtil.getCache(Long.class, String.class,cacheName);
        //写缓存
        cache.put(1001L, "xixi");
        //读缓存
        String value = cache.get(1001L);
        System.out.println(value);
        EhcacheUtil.release(cacheName);
        
        cacheName = Long.class+"_"+User.class.getSimpleName();
        Cache cache = getCache(Long.class, User.class, cacheName);
        cache.put(1001L, new User(1001L,"张三","zhangsan","1234",true,"369950806@qq.com","13264494458"));
        User user = cache.get(1001L);
        System.out.println(user);
    }
}
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0466s